首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python For,While循环:将if- into改为循环

Python For,While循环:将if- into改为循环
EN

Stack Overflow用户
提问于 2021-10-02 07:56:25
回答 3查看 88关注 0票数 1

我是一个新的学习者,我的问题是我如何将这些if-else语句转换为for while循环?

我试图用一种愚蠢的方法,我的逻辑如下:

1.输入号码列表

2.使用给定向量中的操作数来进行数学运算。

3.输出结果

谢谢。

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-02 08:16:47

我想,用于循环是你所需要的

代码语言:javascript
复制
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)

还要记住,将变量命名为intsum是个坏主意,因为它是内置的python函数。

票数 1
EN

Stack Overflow用户

发布于 2021-10-02 08:15:20

首先是'+‘、'-’、'*‘这些都被称为运算符..

你可以从这里得到帮助。

代码语言:javascript
复制
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)
票数 1
EN

Stack Overflow用户

发布于 2021-10-02 08:18:32

这可能会有帮助

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69415065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档