麻烦在Python中倍增和划分

时间:2014-05-03 21:42:01

标签: python multiplying

所以我正在为比赛写一个游戏。

到目前为止,用户已输入一个号码。

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,但确实会增加一个。

为了记录,我尝试了很多可能性,例如只有user * 3(没有int()的东西)而且我是Python的初学者。

3 个答案:

答案 0 :(得分:0)

您需要保存该语句的输出:

user = int(user) * 3

您可能希望在开始时将用户更改为整数,因此您不需要继续这样做,例如:

user = int(user)

答案 1 :(得分:0)

你需要说:

user = int(user)*3

这使得用户的值原始时间为3.之前,您没有对乘法的值做任何事情。您需要将值保存在变量

答案 2 :(得分:0)

int(user) * 3int(user)/2 返回值,但此值未已分配。所以你必须这样做

user = user * 3

user = user / 2

正如jonrsharpe在评论中指出的那样,代码中出现的int()比我想象的要复杂得多。因为在等式检查期间user已经是一个数字,你或者只是简单地做一些不必要的事情,或者试图将浮点数转换为整数(如果我没记错的话,在python 3.x中转换为整数默认情况下浮动)。如果它是后者,你应该user = int(user / 2)或更好,user = user // 2(再次感谢jonrsharpe)。