【发布时间】:2015-05-16 17:15:10
【问题描述】:
这是我的代码:
def retest2():
print "Type in another chapter title! Or type \"Next\" to move on."
primenumbers2()
def primenumbers1():
print "--------------------------------------------------\nChapters in books are usually given the cardinal numbers 1, 2, 3, 4, 5, 6 and so on.\nBut I have decided to give my chapters prime numbers 2, 3, 5, 7, 11, 13 and so on because I like prime numbers.\n\nType in the chapter title of my book (a prime number) and I will tell you what cardinal number the chapter is."
def primenumbers2():
prime = (str(input("\n")))
chapter = (2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233)
if "Next" in prime or "next" in prime:
print "--------------------------------------------------\nOnto the next thing."
elif int(prime) in chapter:
print "Chapter ",chapter.index(int(prime)) + 1
retest2()
elif prime.isalpha:
print "That is not one of my chapter numbers because {0} is not a prime number. Try again.".format(prime)
primenumbers2()
primenumbers1()
primenumbers2()
所以我要做的是让用户输入一个素数,输出是与该素数相关的基数。但是,我希望用户可以通过输入"Next" 或"next" 来选择进入下一个功能。因此,我的变量输入prime 需要同时适应字符串和整数输入。所以我将其设置为(str(input("\n"))),然后在需要时将其转换为int(prime)。
除了"Next" 或"next" 以外的字符串输入时,一切正常。例如,如果我输入“okay”,我会收到错误消息:
File "prime.py", line x, in primenumbers2
prime = (str(input("\n")))
File "<string>", line 1, in <module>
NameError: name 'okay' is not defined
但是如果我输入“4”,它不是一个素数,程序就会运行,我得到:
That is not one of my chapter numbers because 4 is not a prime number. Try again.
然后程序循环回到primenumbers2() 以重新启动该功能。
请帮我完成这项工作!
【问题讨论】: