Python For , While 循环:把 if-else 改成循环
Python For , While loops: change if-else into loops
我是新手,我的问题是
如何将这些 if-else 语句转换为 for while 循环?
我尝试使用一种愚蠢的方式,我的逻辑如下:
1.Enter 数字列表
2.Use 给定向量中的操作数以进行数学运算
3.Output结果
谢谢。
int= [1, 6, 8, 4] # input int
operands=['+', '-', '*'] # input operands
sum = '+'
sub = '-'
multi = '*'
divide = '/'
z = 1
temp =0
if operands[0] == sum:
temp = int[0]+int[1]
elif operands[0] == sub:
temp =int[0] -int[1]
elif operands[0] == multi:
temp =int[0] *int[1]
elif operands[0] == divide:
temp = int[0]/int[1]
if operands[1] == sum:
temp += int[2]
elif operands[1] == sub:
temp -= int[2]
elif operands[1] == multi:
temp *= int[2]
elif operands[1] == divide:
temp /= int[2]
if operands[2] == sum:
temp += int[3]
elif operands[2] == sub:
temp -= int[3]
elif operands[2] == multi:
temp *= int[3]
elif operands[2] == divide:
temp /= int[3]
print(temp)
首先['+', '-', '*']这些都叫运算符..
你可以从中得到帮助..
lst = [1, 6, 8, 4] # input int
operators =['+', '-', '*'] # input operators
sum = '+'
sub = '-'
multi = '*'
divide = '/'
z = 1
temp =0
for i in range(len(lst)-1):
if i < len(lst):
if operators[i] == sum:
temp = lst[i] + lst[i + 1]
elif operators[i] == sub:
temp = lst[i] - lst[i + 1]
elif operators[i] == multi:
temp = lst[i] * lst[i + 1]
elif operators[i] == divide:
temp = lst[i] / lst[i + 1]
print(temp)
我想,for loops就是你需要的
ints = [1, 6, 8, 4] # input int
operands = ['+', '-', '/'] # input operands
plus = '+'
minus = '-'
multi = '*'
divide = '/'
z = 1
temp = ints[0]
for i in range(len(operands)): # We need to get range from 0 to length of operands
if operands[i] == plus:
temp = temp + ints[i + 1]
elif operands[i] == minus:
temp = temp - ints[i + 1]
elif operands[i] == multi:
temp = temp * ints[i + 1]
elif operands[i] == divide:
temp = temp / ints[i + 1]
print(temp)
还要记住,将变量命名为 int
或 sum
是个坏主意,因为它是内置的 python 函数。
这可能会有帮助
lst= [1, 6, 8, 4] # input int
operands=['+', '-', '*'] # input operands
temp=lst[0]
for i in range(len(lst)-1):
expr = "temp="+str(temp)+operands[i]+str(lst[i+1])
exec(expr)
print(temp)
我是新手,我的问题是 如何将这些 if-else 语句转换为 for while 循环?
我尝试使用一种愚蠢的方式,我的逻辑如下:
1.Enter 数字列表
2.Use 给定向量中的操作数以进行数学运算
3.Output结果
谢谢。
int= [1, 6, 8, 4] # input int
operands=['+', '-', '*'] # input operands
sum = '+'
sub = '-'
multi = '*'
divide = '/'
z = 1
temp =0
if operands[0] == sum:
temp = int[0]+int[1]
elif operands[0] == sub:
temp =int[0] -int[1]
elif operands[0] == multi:
temp =int[0] *int[1]
elif operands[0] == divide:
temp = int[0]/int[1]
if operands[1] == sum:
temp += int[2]
elif operands[1] == sub:
temp -= int[2]
elif operands[1] == multi:
temp *= int[2]
elif operands[1] == divide:
temp /= int[2]
if operands[2] == sum:
temp += int[3]
elif operands[2] == sub:
temp -= int[3]
elif operands[2] == multi:
temp *= int[3]
elif operands[2] == divide:
temp /= int[3]
print(temp)
首先['+', '-', '*']这些都叫运算符..
你可以从中得到帮助..
lst = [1, 6, 8, 4] # input int
operators =['+', '-', '*'] # input operators
sum = '+'
sub = '-'
multi = '*'
divide = '/'
z = 1
temp =0
for i in range(len(lst)-1):
if i < len(lst):
if operators[i] == sum:
temp = lst[i] + lst[i + 1]
elif operators[i] == sub:
temp = lst[i] - lst[i + 1]
elif operators[i] == multi:
temp = lst[i] * lst[i + 1]
elif operators[i] == divide:
temp = lst[i] / lst[i + 1]
print(temp)
我想,for loops就是你需要的
ints = [1, 6, 8, 4] # input int
operands = ['+', '-', '/'] # input operands
plus = '+'
minus = '-'
multi = '*'
divide = '/'
z = 1
temp = ints[0]
for i in range(len(operands)): # We need to get range from 0 to length of operands
if operands[i] == plus:
temp = temp + ints[i + 1]
elif operands[i] == minus:
temp = temp - ints[i + 1]
elif operands[i] == multi:
temp = temp * ints[i + 1]
elif operands[i] == divide:
temp = temp / ints[i + 1]
print(temp)
还要记住,将变量命名为 int
或 sum
是个坏主意,因为它是内置的 python 函数。
这可能会有帮助
lst= [1, 6, 8, 4] # input int
operands=['+', '-', '*'] # input operands
temp=lst[0]
for i in range(len(lst)-1):
expr = "temp="+str(temp)+operands[i]+str(lst[i+1])
exec(expr)
print(temp)