2014-05-03 137 views
0

所以我正在写一个比赛的游戏。麻烦在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号,但它确实增加了一个。

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

回答

0

你需要说:

user = int(user)*3

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

+1

谢谢,对不起,这是一个愚蠢的错误。 – gingepusscat123

0

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

user = int(user) * 3 

您可能需要更改用户在开始一个整数,所以你不需要继续做下去,是这样的:

user = int(user) 
+1

谢谢,这真的有帮助!它现在像一种魅力。 – gingepusscat123

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)。

+0

谢谢,我会尽早改变它以节省时间。 – gingepusscat123

+0

它必须已经是一个数字,否则你检查均匀性将不起作用(它会被解释为旧式字符串格式)。 – jonrsharpe

+0

@jonrsharpe我编辑了我的答案。 – Dunno