Python中的乘法和除法问题
我正在为一个比赛写一个游戏。
到目前为止,用户已经输入了一个数字。
if user % 2 == 0 :
print("What you entered is an even number.")
print("")
print("So, according to RULE 1, we must now divide it by 2.")
int(user)/ 2
thing2 = "So, now we're left with " + str(user) + "."
print (thing2)
else :
print("What you entered is an odd number.")
print("")
print("So, according to RULE 1, we must now multiply it by 3, and add 1.")
int(user) * 3
user += 1
thing2 = "So, now we're left with " + str(user) + "."
print (thing2)
.... 但是这里的 int(user) * 3 其实并没有把这个数字乘以3,而是加了1。
顺便说一下,我尝试了很多种可能性,比如直接用 user * 3(没有用int()这个东西),而且我还是Python的新手。
相关问题:
3 个回答
0
你需要把那个语句的结果保存下来:
user = int(user) * 3
你可能想在一开始就把用户的输入转换成整数,这样就不用一直重复这个操作,可以这样做:
user = int(user)
0
int(user) * 3 和 int(user)/2 这两段代码会返回一个值,但这个值并没有被 赋值。所以你需要这样做:
user = user * 3
还有
user = user / 2
正如jonrsharpe在评论中提到的,代码中的 int() 其实比我想的要复杂。因为在进行相等检查时,user 已经是一个数字了,所以你可能是在搞不清楚状况下做了一些不必要的事情,或者是在尝试把浮点数转换成整数(如果我没记错的话,在python 3.x中,除法会默认把整数转换成浮点数)。如果是后者,你应该这样写:user = int(user / 2),或者更好的是,user = user // 2(再次感谢jonrsharpe)。
0
你需要这样写:
user = int(user)*3
这行代码的意思是把用户输入的值乘以3,然后把结果存回给用户。之前你没有对这个乘法的结果做任何处理,你需要把这个结果保存到一个变量里。