import random
while True:
dice1=random.randint (1,6)
dice2=random.randint (1,6)
strengthone = input ("Player 1, between 1 and 10 What do you want your characters strength to be? Higher is not always better.")
skillone = input ("Player 1, between 1 and 10 What do you want your characters skill to be? Higher is not always better.")
if str(strengthone) > int(10):
print ("Incorrect value")
else:
print ("Good choice.")
if skillone > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
strengthtwo = input ("Player 2, between 1 and 10 what do you want your characters strength to be? Higher is not always better.")
skilltwo = input ("Player 2, between 1 and 10 what do you want your characters skill to be? Higher is not always better.")
if strengthtwo > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
if skillone > 10:
print ("Incorrect value.")
else:
print ("Good choice.")
strengthmod = strengthone - strengthtwo
skillmod = skillone - skilltwo
print ("Player 1, you rolled a", str(dice1))
print ("Player 2, you rolled a", str(dice2))
if dice1 == dice2:
print ("")
if dice1 > dice2:
newstrengthone = strengthmod + strengthone
newskillone = skillmod + skillone
if dice2 > dice1:
newstrengthtwo = strengthmod + strengthtwo
newskilltwo = skillmod + skilltwo
if dice1 < dice2:
newstrengthone = strengthmod - strengthone
newskillone = skillmod - skillone
if dice2 < dice1:
newstrengthtwo = strengthmod - strengthtwo
newskilltwo = skillmod - skilltwo
if strengthone == 0:
print ("Player one dies, well done player two. You win!")
if strengthtwo == 0:
print ("Player two dies, well done player one. You win!")
if newstrengthone == 0:
print ("Player one dies, well done player two. You win!")
if newstrengthtwo == 0:
print ("Player two dies, well done player one. You win!")
break
它用于学校项目,因此代码的目标不会有多大意义。由于缩进,我有一些语法错误。我现在把它们分类了,我有这个:
Traceback (most recent call last):
File "N:\Computing\Task 3\Program.py", line 11, in <module>
if str(strengthone) > int(10):
TypeError: unorderable types: str() > int()
有什么想法吗?
答案 0 :(得分:2)
您无法比较str
和int
。所以改变
if str(strengthone) > int(10):
到
if int(strengthone) > int(10):
将10转换为int
是不必要的,因为它已经是一个int。
print (type(10)) # <type 'int'>
所以,这可以写成这样的
if int(strengthone) > 10:
更好的是,您可以将input
以外的值转换为相应的类型
strengthone = int(input ("Player 1,..."))
skilltwo = int(input ("Player 2,..."))
那么,您可以比较像这样的值
if strengthone > 10:
答案 1 :(得分:0)
更改
if str(strengthone) > int(10):
到
if strengthone.isdigit() and int(strengthone) > 10: