所以我正在尝试创建一个带有输入的程序,例如“34123 + 74321”,并使用for循环输出答案。我被困住了,不知道为什么我的下面的代码不起作用:
S = str(input())
for char in range(0, len(S)):
x = S[1:char]
p = int(char)+1
z = S[p:]
if chr(char) == "+":
print (int(z)+int(x))
答案 0 :(得分:4)
这样做会更容易:
>>> s = input()
34123+74321
>>> print(sum(int(x) for x in s.split('+')))
108444
细分:
通过将字符串拆分为'+'
作为分隔符的部分,建立数字字符串列表。
for
list
中的每个值,将其转换为整数。
查找这些整数的总数或sum
。
print
将该值输出到屏幕供用户查看。
您也可以尝试:
>>> import ast
>>> s = input()
34123+74321
>>> ast.literal_eval(s)
108444
答案 1 :(得分:2)
char
被分配了值(0, 1, ..., len(S)-1)
,因此chr(char)
永远不会等于'+'
。
答案 2 :(得分:0)
可能你的意思是if s[char] == "+":
。
通常,您应该尝试使用“说”变量名。
电子。 g。而不是char
,最好使用idx
或其他东西。
string = str(input())
for idx in range(0, len(string)):
if string[idx] == "+":
part1 = string[1:idx]
part2 = string[idx+1:]
print (int(part1) + int(part2))
答案 3 :(得分:0)
您正在使用循环来查找' +'的位置。性格对吗?然后代码应为:
for char in range(len(S)):
if S[char] == '+': pos = char
然后你可以继续下去:
z = S[pos+1:]
x = S[:pos]
print int(x) + int(z)
但请注意,这不是一种非常 pythonic 的做事方式。在Python中,有一个字符串方法index
已找到您要查找的位置:
pos = '1234+5678'.index('+')
执行此操作的更简单方法(以及更多 Pythonic )将是:
x, z = '1234+5678'.split('+')
当然,您也可以这样做:
print sum(map(int, S.split('+')))
如果您要添加多个项目,这也会有效。
如果你开始学习Python,那么如果你理解一切都是一个对象并拥有自己的方法会更好。你对这些方法的了解越多,你对Python的了解就越多。它是一个比传统语言更高级的程序,所以尽量不要受到您习惯的相同算法结构的限制。
欢呼,快乐的节目!