Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何返回到程序的前一部分(Python)_Python_Return - Fatal编程技术网

如何返回到程序的前一部分(Python)

如何返回到程序的前一部分(Python),python,return,Python,Return,我是python新手,遇到了一个问题,希望能得到一些帮助。 简而言之,问题是: 要一根绳子 检查预定义列表中的所有字母 如果列表中没有任何字母,则要求输入新字符串,否则转到下一步 请求第二个字符串 再次检查第二个字符串的字母是否在列表中 如果列表中没有任何字母,请首先请求一个新的字符串 基本上,我的主要问题是如何回到我程序的前一部分,如果有人给我写这段代码的基础,这也会有所帮助。 它是这样开始的: list1=[a,b,c,d] string1=raw_input("first:") for i

我是python新手,遇到了一个问题,希望能得到一些帮助。 简而言之,问题是:

  • 要一根绳子
  • 检查预定义列表中的所有字母
  • 如果列表中没有任何字母,则要求输入新字符串,否则转到下一步
  • 请求第二个字符串
  • 再次检查第二个字符串的字母是否在列表中
  • 如果列表中没有任何字母,请首先请求一个新的字符串
  • 基本上,我的主要问题是如何回到我程序的前一部分,如果有人给我写这段代码的基础,这也会有所帮助。 它是这样开始的:

    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']