【发布时间】:2013-05-04 08:15:55
【问题描述】:
这是我将要制作的 RPG 的开始,它运行顺利,直到我尝试通过说是或任何其他激活 if 语句的答案来改变性别。有什么我忘记了吗?附言为此表示歉意。我是业余爱好者。
import random
import time
def Intro():
print('Hit enter to begin.')
input()
print('Please choose a name for your character.')
PlayerName=input()
def KeepName():
print('You have chosen "' + PlayerName + '" as your character\'s name.')
print('Do you wish to keep this as your name? (yes or no)')
return input().lower().startswith('n')
while KeepName():
print('Please choose a name for your character.')
PlayerName=input()
planet = 'Sykahrox VII' #Useless as of this point but I kept it in so I can remember the name of the planet.
def gender():
print('Do you want to be Male, or Female?')
choice = input().lower()
if choice in ('m', 'male', 'boy', 'guy', 'dude'):
return 'Male'
if choice in ('f', 'female', 'girl', 'woman'):
return 'Female'
ChangeGen = 'y'
while ChangeGen in ('y', 'yes', 'yeah', 'yup'):
genderchoice = gender()
print ('You have chosen ' + genderchoice + ' as your gender. Do you wish to change this?')
ChangeGen = input().lower
if ChangeGen in ('y', 'yes', 'yeah', 'yup'):
gender()
Intro()
【问题讨论】:
-
@Duniyadnd,对此感到抱歉,我不知道为什么我输入了 14,我已经编辑了帖子作为回应。很抱歉给您带来不便。
-
如果你在第一个提示符下输入
male,gender()将成功地返回Male给它的调用者……但是由于你忽略了返回值,那将永远不可见。打印任何内容的唯一方法是第一次输入无效的内容,在这种情况下gender将递归调用gender(),然后打印出内部调用返回的任何内容。 (然后,在这种情况下,它不会返回任何东西。)那么……你实际上是在 试图 在这里做什么? -
@abarnert 我正在努力做到这一点,以便它继续让你有机会改变主意,直到你用 y、yes、yes 或 yup 以外的东西做出回应。
-
好的,我想我明白了。但我很好奇:你的
KeepName函数和循环工作正常,那么为什么不为gender再次做同样的事情,而不是尝试提出结构不同的代码来做同样的事情呢?跨度> -
附带说明:“if 语句无法正常工作”之类的标题听起来有点像您在说“Python 坏了”而不是“我的代码坏了”,这可能会导致一些人忽略您的问题或投反对票而不是回答您。 (我不知道这是否是这次有人对你投了反对票的原因,因为这样做的人都懒得解释自己。)
标签: python python-3.x