为什么assign()函数不会将字符串更改为整数? assign函数不返回我在if语句中设置的值!
p1 = raw_input("Player 1 ?")
p2 = raw_input("Player 2 ?")
def assign(n):
if n == "r":
return (1)
elif n == "s":
n = 2
elif n == "p":
n = 3
else:
print "Wrong input!"
return n
assign(p1)
assign(p2)
print p1
print p2
if p1 - p2 == 0:
print "Tie!"
elif (p1 - p2) / 2 != 0:
print " Player 1 is winner!"
else:
print" Player 2 is the winner!"
答案 0 :(得分:1)
函数内的变量n
与作为参数提供的表达式(或变量)的 distinct 不同。因此,在函数内部分配n
将不影响外部的任何变量。 (这是因为Python 不按引用调用。)
相反,请使用返回值,例如
def classifyInput(n):
if n == "r":
return 1
elif n == "s":
return 2
elif n == "p":
return 3
else:
print "Wrong input!"
# implicit: return None
p1_inp = raw_input("Player 1 ?")
p1 = classifyInput(p1_inp)