当我把ourum放在循环之外时,它将它无限乘以2
usernum=float(input('Enter a number: '))
if usernum<=0 or usernum>1000:
print('Your number is '+str(usernum))
else:
oursum=usernum*2
while oursum<=1000:
print('Multiplied by 2 equals '+str(oursum))
在里面时,它没有被定义。
usernum=float(input('Enter a number: '))
if usernum<=0 or usernum>1000:
print('Your number is '+str(usernum))
else:
while oursum<=1000:
oursum=usernum*2
print('Multiplied by 2 equals '+str(oursum))
我理解我正在制造的问题,但我不知道如何纠正这一问题而不会让它变得不必要地长而复杂。提前谢谢。
答案 0 :(得分:2)
问题是您在oursum
内保存了乘法的结果,但您之后不再使用oursum
继续乘法。
以下内容应该有效,并且不会增加代码的复杂性:
usernum=float(input('Enter a number: '))
if usernum<=0 or usernum>1000:
print('Your number is '+str(usernum))
else:
oursum = usernum # oursum starts from usernum and it will get bigger through each iteration
while oursum<=1000:
oursum=oursum*2
print('Multiplied by 2 equals '+str(oursum))
答案 1 :(得分:0)
在第二个代码中,您在定义它之前在while语句的条件中使用oursum
。因此,在while循环之前定义oursum
并指定一个类似0
usernum=float(input('Enter a number: '))
if usernum<=0 or usernum>1000:
print('Your number is '+str(usernum))
else:
oursum = 0 #like this
while oursum<=1000:
oursum=usernum*2
print('Multiplied by 2 equals '+str(oursum))
答案 2 :(得分:0)
if
和while
中的条件非常相似,您可以在一次测试中合并两者。定义一个函数以便能够更容易地重用和测试它也是一个好主意:
def transform(number):
while 0 < number <= 1000:
number *= 2
return number
if __name__ == '__main__':
user_num = float(input('Enter a number: '))
print('After transformation, your number is', transform(user_num))