我是python编程的新手:我正试图解决这个问题:http://codeforces.com/contest/791/problem/A - 但是,当我试图在我的编辑器中解决它时,它给了我:声明中的问题: " x * = 3",解释器错误是: 第6行,主要 x * = 3 的MemoryError
def main():
x = input("inter first number : ")
z = input("inter second number : ")
result = 0
while x <= z:
x *= 3
z *= 2
result += 1
print(result)
if __name__ == '__main__':
main()
答案 0 :(得分:2)
input
类型为str
:您必须先将输入转换为数值int
或float
,然后才能对其应用数值运算(*=)
:: < / p>
def main():
x = int(input("inter first number : ")) # alternatively: float(input("inter first number : "))
z = int(input("inter second number : ")) # same alternative
result = 0
while x <= z:
x *= 3
z *= 2
result += 1
print(result)
if __name__ == '__main__':
main()
正如@ juanpa.arrivillaga在评论中指出的那样MemoryError
是x
和y
是字符串,乘以 字符串'10'*3 == '101010'
,你可能会创建一个无限的 循环,创建越来越大的字符串,直到你的内存不足。