如何返回到程序的前一部分(Python)
我是python新手,遇到了一个问题,希望能得到一些帮助。 简而言之,问题是:如何返回到程序的前一部分(Python),python,return,Python,Return,我是python新手,遇到了一个问题,希望能得到一些帮助。 简而言之,问题是: 要一根绳子 检查预定义列表中的所有字母 如果列表中没有任何字母,则要求输入新字符串,否则转到下一步 请求第二个字符串 再次检查第二个字符串的字母是否在列表中 如果列表中没有任何字母,请首先请求一个新的字符串 基本上,我的主要问题是如何回到我程序的前一部分,如果有人给我写这段代码的基础,这也会有所帮助。 它是这样开始的: list1=[a,b,c,d] string1=raw_input("first:") for i
list1=[a,b,c,d]
string1=raw_input("first:")
for i in string1:
if i not in list1:
谢谢我建议您从这里开始:
然后继续下一章:您有两个选项,可以使用迭代或递归。对于这类问题,我将使用迭代。如果您不知道迭代和递归是什么,以及它们在Python中是如何工作的,那么您应该使用Kugel建议的链接。这听起来像是一个暂时的工作循环 伪代码是
list=[a,b,c,d]
declare boolean passes = false
while (!passes)
passes = true
String1 = raw_input("first:")
foreach char in string1
if !list.contains(char)
passes = false
break
if passes
String2 = raw_input("second:")
foreach char in string2
if !list.contains(char)
passes = false
break
另一个好的起点是寻找常见的操作序列,并将它们放在单独的子例程中
# ignore this bit - it's here for compatibility
try:
inp = raw_input # Python 2.x
except NameError:
inp = input # Python 3.x
# this wraps the 'ask for a string, check if all characters are valid' bit in a single call
def GetValidString(msg, validChars):
i = inp(msg)
if all(ch in validChars for ch in i):
return i
else:
return None
def main():
while True:
str1 = GetValidInput('first: ', 'aeiou'):
if str1:
str2 = GetValidInput('second: ', 'rstvy'):
if str2:
break # good! we can leave the loop now
# got valid values for str1 and str2
逻辑看起来像“循环,直到你得到string1,它是好的,你得到string2,它也是好的”
希望能有所帮助。N.B.这是我第一次回答关于SO的问题,所以如果有人对我的答案有任何意见,请告诉我:)顺便说一句:在你的代码中应该是
list1=['a','B','c','d']
。