【发布时间】:2016-10-23 22:43:41
【问题描述】:
我真的不知道如何问这个问题,而且我可能听起来很愚蠢。我一直在寻找解决我一直遇到的问题的方法,但我尝试过的一切都没有奏效。 我正在为我的计算机科学课程做一个项目,作为我的期末考试,该项目从姓名、生日、城市、地址等列表中随机生成一个身份。(旁注:我的老师实际上并没有教我任何东西;我们阅读笔记并进行了由笔记中的定义组成的测验,当我们无法弄清楚某些事情时,他只是告诉我们问邻居。而且,这是我在这里的第一篇文章,所以如果格式不正确,并且我的编码能力很差,我提前道歉。)无论如何,我会继续我的问题。
在程序开始时,它会询问您是否要生成男性或女性身份:
def get_info():
global gender
global name
gender=input("Enter a gender of which you would like to randomly generate M=male F=female:")
if gender==("F"):
name=fname
elif gender==("M"):
name=mname
else:
print("Please enter either an M or F.")
get_info()
然后它使用它来确定名称来自哪个列表:
fname=random.choice(list(set(["girlynames","tina","caroline","etc"])))
或
mname=random.choice(list(set(["guynames","richard","earl","etc"])))
然后它会打印出一个随机的身份,包括姓名、生日等,如下所示:
Your new identity is:
Nathaniel Ellis
Your birthday is :
September 5 1985
Your address is :
470 MacMurray Acres
我在程序的主要部分之后添加了一个功能,如果他们想再次使用该程序,它会询问用户输入。
def retry():
again=input("Would you like to generate another? Y/yes N/no: ")
if again==('Y'):
get_info()
generate_identity()
retry()
elif again==('N'):
print("Thanks for using the identity generator! Have a spectacular day")
quit()
问题是,每次我输入“Y”和性别时,它都会得到与第一次完全相同的结果,即使是不同的性别,除了名字之外所有结果都是相同的。
Your new identity is:
Ava Ellis
Your birthday is :
September 5 1985
Your address is :
470 MacMurray Acres
我觉得有一个简单的解决方案,但我从这个网站(以及其他来源)阅读和尝试的所有内容都没有奏效。 有没有办法在使用后从列表中删除项目?还是让它每次结果都不一样?或者甚至是一种重置 Python 的方法,因为它只是伪随机的?我已经为此困扰了 3 天,它将于下周一到期,而我一直在这里 stackoverflow 试图找到解决方案,因为我注意到了这个问题。非常感谢您的帮助,您将成为救生员! :)
【问题讨论】:
-
你是如何生成地址的?您忘记发布代码的那部分。
-
@Burhan 对于地址,它使用与名称生成器相同的概念,除了门牌号和生日/年份。对于那些,我有 random.randint。