我的函数在if matches in ticket
点之后的matches
行处停止工作,将错误列为无效输入。这是什么原因,我该如何解决?我是Python的新手,因此非常感谢您的帮助。此外,此功能仍在开发中,我知道它目前效率很低,但是我试图在更改其他任何东西之前修复此错误。
import random
def matches(ticket, winner):
score = 0
attemptnum = 0
for number in ticket:
if number in winner:
score += 1
return score
def winner():
win1 == rand.randint(1, 69)
win2 == rand.randint(1, 69)
win3 == rand.randint(1, 69)
win4 == rand.randint(1, 69)
win5 == rand.randint(1, 69)
win6 == rand.randint(1, 69)
winner == 'win1 win2 win3 win4 win5 win6'
def playPowerBall():
print('Please select your first unique number between 1-69.')
def ticket():
num1 = int(input('1st Number:'))
if num1 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
num2 = int(input('2nd Number:'))
if num2 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
num3 = int(input('3rd Number:'))
if num3 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
num4 = int(input('4th Number:'))
if num4 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
num5 = int(input('5th Number:'))
if num5 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
num6 = int(input('6th Number:'))
if num6 in winner():
score += 1
matches += 1
else:
score += 0
matches += 0
attempts = num1, num2, num3, num4, num5, num6
for matches in ticket:
score += 1
else:
score += 0
if matches in ticket:
print('You picked at least ' matches 'winning numbers in 6 attempts, please claim your cash prize.')
else:
print('You do not have a winning combination. Would you like to play Powerball again?')
response = str(raw_input('Y/N:')):
if response == 'Y':
os.execl(sys.executable, sys.executable, *sys.argv)
else:
print('Thank you for playing.')
sys.exit(0)
答案 0 :(得分:1)
在阅读您的代码时,我正在学习一些东西:
winner
中,您没有执行任何操作,双等号是test operator,并且不会进行任何赋值,如果 check 中的值win1等于随机生成的数字。winner
,该变量包含一个包含字符win1 win2 ...
的字符串,我只能假设您正在尝试创建一个包含这些win1变量的对象,例如您可以使用list,如下所示:
winners = [win1, win2, win3, win4, win5, win6]
return(winners)
我不知道您打算在最大的playPowerBall
函数中做什么,所以我将只讨论一些明显让您感到困惑的事情:
def
作为关键字定义一个函数,但不执行该函数,必须调用该函数才能运行。invalid input
,而是看到invalid syntax
错误,因为您正在尝试检查整数matches
是否在函数指针ticket
中。这不是有效的语法,要进行函数调用,您必须使用括号,否则python认为您正在引用函数指针,因此matches in ticket()
可能是有效的语法,但是正如您所定义的那样,我看不出如何处理工作。此代码是否已正确编译或完全可以运行?我认为,在尝试构建这种复杂的东西之前,您需要返回关于函数定义的更多基本知识,从一个函数定义开始,然后尝试使其在一个小程序中运行,然后再回到这一点。
让我知道我还有什么可以帮助的。