x = input()
y = 1
print (x)
while 1 == y:
if x == 1:
y == y + 1
elif x % 2 == 0: #even
x = x // 2
print (x)
else:
x = 3 * x + 1
print (x)
如果你知道科拉茨猜想是什么,我正在尝试为此制作一个计算器。我希望将 x 作为我的输入,这样我就不必每次尝试新号码时都更改 x 的号码并保存。
我收到以下错误
类型错误:在字符串格式化过程中并非所有参数都被转换'
在第 7 行。
请帮助菜鸟。
问题是您接受用户输入:
x = input()
Now x
is a str
。所以,在这一行:
elif x % 2 == 0: #even
The %操作员 https://docs.python.org/3.6/library/stdtypes.html#printf-style-string-formatting充当字符串插值运算符.
>>> mystring = "Here goes a string: %s and here an int: %d" % ('FOO', 88)
>>> print(mystring)
Here goes a string: FOO and here an int: 88
>>>
但是,那input
您给出的没有格式说明符,因此:
>>> "a string with no format specifier..." % 10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>>
您需要将用户输入转换为int
为了%
运算符来执行模运算。
x = int(input())
现在,它将执行您想要的操作:
>>> x = int(input("Gimme an int! "))
Gimme an int! 88
>>> x % 10
8
>>>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)