Python 如何更改字符串的总和以使其正常工作?
这是我正在处理的整个程序(由于代码需要缩进,函数不在正确的位置),但无论如何,有一个问题我不确定如何解决 我如何更改它,使其与我的程序一起工作?它说它是在一个字符串中,但不确定如何更改它,所以它从我的程序的其余部分计算变量。我很抱歉,这似乎不是唯一的问题,我是新来的,只是习惯了它的工作方式Python 如何更改字符串的总和以使其正常工作?,python,string,python-3.x,Python,String,Python 3.x,这是我正在处理的整个程序(由于代码需要缩进,函数不在正确的位置),但无论如何,有一个问题我不确定如何解决 我如何更改它,使其与我的程序一起工作?它说它是在一个字符串中,但不确定如何更改它,所以它从我的程序的其余部分计算变量。我很抱歉,这似乎不是唯一的问题,我是新来的,只是习惯了它的工作方式 import time import random def welcome(): ready="no" while ready=="no": print("Welcome To Encounter
import time
import random
def welcome():
ready="no"
while ready=="no":
print("Welcome To Encounter Simulator Inc. Where We Provide You with combat..")
print("Readying Start Up Sequence....")
time.sleep(0.5)
print("Welcome Are You Ready? Yes or No")
ready=input(str())
while ready!="yes" and ready!="no":
print("Yes or No Please")
ready=input(str())
def name():
areyousure="no"
while areyousure!="yes":
print("What do you want your 1st character to be named?")
name=input()
print("Are You Sure?(yes or no)")
areyousure=input(str())
if areyousure!="yes" and areyousure!="no":
print("Yes or No Please")
areyousure=input(str())
return name
def name2():
areyousure2="no"
while areyousure2!="yes":
print("What do you want your 2nd character to be named?")
name2=input()
print("Are You Sure?(yes or no)")
areyousure2=input(str())
if areyousure2!="yes" and areyousure2!="no":
print("Yes or No Please")
areyousure2=input(str())
return name2
def inputtingfor1(name):
areyousure3="no"
while areyousure3!="yes":
print("Please Input",name,"'s Attributes..")
skill1=input("The Skill Attribute= ")
strength1=input("The Strength Attribute= ")
print("Are You Sure? (Yes or No)")
areyousure3=input(str())
return skill1,strength1
def inputtingfor2(name2):
areyousure4="no"
while areyousure4!="yes":
print("Please Input",name2,"'s Attributes..")
skill2=input("The Skill Attribute= ")
strength2=input("The Strength Attribute= ")
print("Are You Sure (Yes or No)")
areyousure4=input(str())
return skill2,strength2
def difference1(skill1,skill2):
if skill1 >= skill2:
result0=skill1-skill2
result1=result0/5
elif skill1==skill2:
print("There Will Be No Skill Modifier")
result1=0
else:
result0=skill2-skill1
result1=result0/5
return result1
def difference2(strength1,strength2):
if strength1 >= strength2:
result10=strength1-strength2
result2=result10/5
elif strength1==strength52:
print("There Will Be No Strength Modifier")
result2=0
else:
result10=strength2-strength1
result2=result10/5
return result2
def dicerolling1():
print()
time.sleep(1)
print("This Will Determin Who Gets The Modifiers And Who Loses Them..")
dicenumber1=random.randint(1,6)
print(" The Dice Is Rolling For",name1,)
time.sleep(1)
print("And The Number",name1,"Got Was...",dicenumber1,)
return dicenumber1
def dicerolling2():
print()
time.sleep(1)
print("This Will Determin Who Gets The Modifiers And Who Loses Them..")
dicenumber2=random.randint(1,6)
print(" The Dice Is Rolling For",name2,)
time.sleep(1)
print("And The Number",name2,"Got Was...",dicenumber2,)
return dicenumber2
welcome()
name=name()
name2=name2()
skill1,strength1=inputtingfor1(name)
skill2,strength2=inputtingfor2(name2)
difference1(skill1,skill2)
difference2(strength1,strength2)
dicenumber1=dicerolling1()
dicenumber2=dicerolling2()
当skill1==skill2时,未定义result1 修正:
从原始问题的注释线程来看,问题在于
skill1
和skill2
是字符串,不支持-
操作数。在对它们执行任何数学运算之前,需要将它们强制转换为int
:
def difference1(skill1,skill2):
try:
s1 = int(skill1)
s2 = int(skill2)
except exceptions.ValueError:
print("Could not cast to int")
return None
if s1 >= s2:
result0 = s1-s2
result1=result0/5
elif s1==s2:
print("There Will Be No Skill Modifier")
result1 = 0
else:
result0=s2-s1
result1=result0/5
return result1
根据传递到
差异1
中的内容,可能不会留下整数。如果可以将skill1
和skill2
解析为浮动
,则在尝试将它们强制转换为整数
时会遇到异常。如果您知道永远不会出现这种情况,可以删除try except
块 你面临的确切问题是什么?错误在哪里,又是什么?请清楚地解释问题。它说不支持opperand作为using-in字符串,但不知道如何修复etcAreskill1
和skill2
字符串?如果是这样的话,你需要把它们转换成数字。哦,是的,谢谢,这可能就是问题所在!请给出1.)至少一个输入到差异1
,2.)这些示例的差异1
的预期输出,3.)错误/回溯的副本/粘贴。现在,不清楚你在问什么,确切的错误是什么。我不明白为什么有人投了“-1”:即使这不是唯一的问题,这个问题仍然是一个!int(result0=s1-s2)=>缩进错误,类型错误
def difference1(skill1,skill2):
try:
s1 = int(skill1)
s2 = int(skill2)
except exceptions.ValueError:
print("Could not cast to int")
return None
if s1 >= s2:
result0 = s1-s2
result1=result0/5
elif s1==s2:
print("There Will Be No Skill Modifier")
result1 = 0
else:
result0=s2-s1
result1=result0/5
return result1