2014-01-10 25 views
-1

好的,所以當程序要求輸入第一個字符名並輸入時,它就會掛起而沒有任何反應。如果有人能幫助我,我會非常感激!這裏是我的代碼:這個python程序有什麼問題?在詢問第一個字符名稱後,它會掛起

import math, random 
name1 = "" 
name2 = "" 
strength1 = 0 
strength2 = 0 
skill1 = 0 
skill2 = 0 

def Character1(strength1, skill1, name1): 
    name1 = raw_input("Please enter a name for the first character : ") 
    strength1 = math.floor(random.randint(1,12)/random.randint(1,4))+10 
    skill1 = math.floor(random.randint(1,12)/random.randint(1,4))+10 

def Character2(strength2, skill2, name2): 
    name2 = raw_input("Please enter a name for the second character : ") 
    strength2 = math.floor(random.randint(1,12)/random.randint(1,4))+10 
    skill2 = math.floor(random.randint(1,12)/random.randint(1,4))+10 

def printStats(strength1, skill1, name1, strength2, skill2, name2): 
    print "The first character is called " + name1 + " and has a skill level of " + str(skill1) + " and a strength level of " + str(strength1) 
    print "The first character is called " + name2 + " and has a skill level of " + str(skill2) + " and a strength level of " + str(strengths2) 

Character1(strength1, skill1, name1) 
Character2(strength2, skill2, name2) 
printStats(strength1, skill1, name1, strength2, skill2, name2) 

P.S:我使用Python 2.7

+0

你是什麼意思'掛起'?輸入名稱後不響應,然後使用ENTER鍵? –

+0

是的,在按下回車鍵將名稱存儲在'name1'中後沒有任何反應 –

+0

當您在函數中添加print語句時會發生什麼? –

回答

0

我懷疑,如果你已經運行代碼。

首先,糾正你的代碼一樣strengths2,skills1錯別字......

其次,如果你想使用全局變量,聲明他們內部功能,否則分配到全局變量會讓他們當地。以下是代碼:

import math, random 
name1 = "" 
name2 = "" 
strength1 = 0 
strength2 = 0 
skill1 = 0 
skill2 = 0 

def Character1(): 
    global strength1, skill1, name1 
    name1 = raw_input("Please enter a name for the first character : ") 
    strength1 = math.floor(random.randint(1,12)/random.randint(1,4))+10 
    skill1 = math.floor(random.randint(1,12)/random.randint(1,4))+10 

def Character2(): 
    global strength2, skill2, name2 
    name2 = raw_input("Please enter a name for the second character : ") 
    strength2 = math.floor(random.randint(1,12)/random.randint(1,4))+10 
    skill2 = math.floor(random.randint(1,12)/random.randint(1,4))+10 

def printStats(): 
    print "The first character is called " + name1 + " and has a skill level of " + str(skill1) + " and a strength level of " + str(strength1) 
    print "The first character is called " + name2 + " and has a skill level of " + str(skill2) + " and a strength level of " + str(strength2) 

Character1() 
Character2() 
printStats() 
+0

謝謝!這段代碼的工作原理是我需要的,對於這樣的'不好的'哈哈抱歉 –