<p>从输入语句中删除int()应该可以。将随机数设置为字符串可能更容易,这样就不会出现不同数据类型的问题</p>
<pre><code>user_choice = input("""(1)Paper, (2)Scissors, (3)Rock!: """)
opponent = str(random.randint(1,3))
</code></pre>
<p>之所以会发生这种情况,是因为python试图将字符转换为整数,您已经在上一个elif中说明了这种情况。任何不是1到3之间的整数的其他答案都将引发错误打印语句</p>
<pre><code>while i < round_select: #Loops for value of round_select
i += 1 #adds value to round_select every round until user input met
opponent = str(random.randint(1,3)) #generates random integer printed as paper, scissors, or rock by above function
time.sleep (0.2)
user_choice = input("""(1)Paper, (2)Scissors, (3)Rock!: """)
if user_choice == opponent:
print (username + choice_to_text(user_choice))
print ("Opponent" + choice_to_text(opponent))
print ("Tie")
ties += 1
elif (user_choice == '1' and opponent == '2') or (user_choice == '2' and opponent == '3') or (user_choice == '3' and opponent == '1'): #outcomes grouped together to avoid mountains of elif statements
print (username + choice_to_text(user_choice))
print ("Opponent" + choice_to_text(opponent))
print ("One point to the opponent!")
opponent_score += 1
elif (user_choice == '1' and opponent == '3') or (user_choice == '2' and opponent == '1') or (user_choice == '3' and opponent == '2'):
print (username + choice_to_text(user_choice))
print ("Opponent" + choice_to_text(opponent))
print ("One point to " + (username) + "!")
user_score += 1
elif user_choice != int or user_choice == ValueError:
print ("Please type an integer between 1 and 3 ")
i -= 1
</code></pre>