2014-05-03 183 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