【发布时间】:2014-11-21 17:51:55
【问题描述】:
我对 python 编码相当陌生,当我尝试运行我的 python 脚本时出现此错误,谁能告诉我我在这里做错了什么? 我正在尝试制作一个数学竞赛程序,它应该首先询问两个玩家的名字,然后继续给每个玩家一个问题,直到两个玩家都回答了 10 个问题。之后,它应该显示每个玩家的得分,并告诉他们谁是获胜者。
## Maths Competition ##
import sys
import time
import random
p1_score = 0
p2_score = 0
main_loop = 'y'
loop = 'y'
if sys.platform == 'darwin':
print('Welcome Mac user')
elif sys.plaform == 'win32' or 'win64':
print('Welcome Windows user')
else:
print('Welcome Linux user')
time.sleep(2)
print('This is a two player maths competition game, Player 1, please enter your name.')
p1_name = input()
print('now player 2 please..')
p2_name = input()
print('Processing...')
time.sleep(2)
print(p1_name+''' will first be given a random maths question,
they then have to answer that question or just press enter if they can't get it.
Then '''+ p2_name +''' will be given a question and they have to do the same thing. Each
time a player gets an answer correct, 10 points are automatically added to their score.
Each player will be given 10 questions in total, in the end, the one with the most right
answers will win. If it is a draw, a penalty round will happen, enjoy
Ps. '**' means 'to the power off'. ''')
time.sleep(5)
while main_loop == 'y':
num_of_tries = 0
while loop == 'y':
num_of_tries = num_of_tries + 1
if num_of_tries >20:
break
ops = ['x','/','+','-','**']
num1 = random.randrange(100)
num2 = random.randrange(35)
sel_op = random.choice(ops)
print(p1_name+', please press enter once you are ready to get your question')
input()
if sel_op == 'x':
ans = num1 * num2
elif sel_op == '/':
ans = num1 / num2
elif sel_op == '+':
ans = num1 + num2
elif sel_op == '-':
ans = num1 - num2
elif sel_op == '**':
ans = num1 ** num2
p1_ans = input('Your question is: %d %s %d' % (num1,sel_op,num2))
if p1_ans == ans:
p1_score = p1_score + 10
num1 = random.randrange(100)
num2 = random.randrange(35)
sel_op = random.choice(ops)
print(p2_name+', please press enter once you are ready to get your question')
input()
if sel_op == 'x':
ans2 = num1 * num2
elif sel_op == '/':
ans2 = num1 / num2
elif sel_op == '+':
ans2 = num1 + num2
elif sel_op == '-':
ans2 = num1 - num2
elif sel_op == '**':
ans2 = num1 ** num2
p2_ans = input('Your question is: %d %s %d' % (num1,sel_op,num2))
if p2_ans == ans2:
p2_score = p2_score + 10
print(p1_name+' got %d' % (p1_score))
print(p2_name+' got %d' % (p2_score))
if p1_score > p2_score:
print(p1_name+' is the WINNER!')
elif p2_score > p1_score:
print(p2_name+' is the WINNER!')
print('Would you like to play another? y/n')
repeat = input()
if any ( [repeat == 'y', repeat == 'Y'] ):
print('Sure thing, wait a couple of seconds for me to set things up again...')
time.sleep(3)
elif any ( [repeat == 'n', repeat == 'N'] ):
break
else:
print('I\'ll take that as a NO')
time.sleep(2)
break
【问题讨论】:
-
运行代码时有什么问题?任何错误或错误答案?!
标签: python