2017-02-26 70 views
-3

感謝您抽出時間回答此問題。我剛開始學習python,我很難過。無法啓動並運行此Python代碼

這是代碼:

import sys 
print (sys.version) 
x = 'a' 
y = '3' 
z = x + y 
print ('Hey') 
print ('whats your age buddy') 
d = raw_input(int) 
print (d) 
If (d > 22) 
print('good to go') 
Else 
print('get out') 

這裏是我所得到的:

C:\Python27\python.exe C:/Users/HP/PycharmProjects/untitled/Test.py 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)]

Hey

whats your age buddy

5

5

Traceback (most recent call last):

File "C:/Users/HP/PycharmProjects/untitled/Test.py", line 10, in If (d > 22)

NameError: name 'If' is not defined

Process finished with exit code 1

請幫助!

+0

我投票結束這個問題作爲題外話,因爲這不是一個輔導服務。 – TigerhawkT3

+0

順便說一下,'raw_input(int)'不會做你的想法。該函數總是返回一個字符串。 –

+0

如果你「剛開始學習」並且被「困住」,解決方法是繼續學習,不要一起折騰幾行,並要求某人修復它。 – TigerhawkT3

回答

2

TLDR:

解決方案修復和 「傳幫帶」 的:

import sys 
print (sys.version) 
x = 'a' 
y = '3' 
z = x + y 
d = str(raw_input('Hey\nWhats your age buddy? ')) 
e = int(d) 
print (e) 
if (e > 22): 
    print('good to go') 
else: 
    print ('get out') 

兩件事情:

  1. 當人們贊成並且提供絕對沒有幫助或方向的時候,受不了下一次提問時變得更好。所以,從中學習,不要因爲「爲什麼他們在低估投資?」並專注於學習。總有一個地方可以教導那些想學習的人。
  2. 不知道什麼x,yzsys.version必須與您的任何問題。你的意思是讓他們以某種方式實施?
  3. 您有幾個語法問題,我在下面進行了更正和詳細說明。

由於您使用的是raw_input我假定您有一個Python 2.x版本。內置函數int()的Python 2.x是你想要的d。或者,您不必將其作爲integer,但可以比較strings;然而讓我們去integer路線。

我打破了這部分了,因爲它不是你的問題的主題:

import sys 
print (sys.version) 
x = 'a' 
y = '3' 
z = x + y 

但是,我們可以在這裏做清潔事情:

  1. 讓清理你的IO(輸入/輸出) :

相反的:

print ('Hey') 
print ('whats your age buddy') 
d = raw_input(int) 
print (d) 

這樣做:

d = str(raw_input('Hey\nWhats your age buddy? ')) 
e = int(d) 
print (e) 

這使得d一個strstring和使用Python 2.x的raw_input得到該字符串。 \nnew line方法,只是將該單行命令的第二部分放在下一行。這只是更少的代碼!

假如您保持d作爲數字只使用int(d)轉換您的stringinteger下方您if/else條件。

  • 讓正確的條件:
  • 相反的:

    If (d > 22) 
    print('good to go') 
    Else 
    print('get out') 
    

    這樣做:

    if (e > 22): 
        print('good to go') 
    else: 
        print ('get out') 
    

    現在你的情況進行比較的integer (即e)到另一個integer(即22)。 Python還需要在每個ifelifelse的末尾有一個:,然後再轉到您的語句中。

    此外,工作縮進,所以你可以知道什麼代碼嵌套在什麼!

    +0

    非常感謝。 x,y,z和sys只是爲了感受這種語言。在這裏提出這個問題之前,我花了幾個小時瀏覽網頁。再次感謝您花時間回答這個問題。 :) –

    0

    檢查您的if語句:

    語法

    if expression: 
        statement(s) 
    else: 
        statement(s) 
    
    +0

    非常感謝你幫助我。 –

    1

    如果你剛剛起步的蟒蛇,我建議學習,而不是蟒蛇2.巨蟒-3因爲Python 3本和未來,而蟒蛇2是過去,將不會進一步更新。

    如果你這樣做你的代碼將運行:

    d = int(raw_input('whats your age buddy')) 
    print(d) 
    if d > 22: 
        print('good to go') 
    else: 
        print('get out') 
    
    +0

    非常感謝。 :)我一定會嘗試一下,它看起來像一個更乾淨的代碼。 –

    0

    你的if語句是錯誤的,如前所述。 它應該在的形式:

    if expression: 
        do this 
    else: 
        do this other thing 
    

    你的另一個問題是,你使用的是的raw_input去括號是你輸入的前綴()wrong.The一部分。例如:

    s = raw_input('hello') 
    print s 
    

    會要求用戶輸入,並用單詞hello作爲前綴。這個程序的一個例子是這樣的:

    ryan 
    >>>helloryan