【问题标题】:if, elif, else statements in pythonpython中的if,elif,else语句
【发布时间】:2019-09-02 02:32:40
【问题描述】:

我需要有关 exit() 函数以及 if、else 和 elif 函数的帮助。当我在不输入名字的情况下按 Enter 并被提示再次输入名字时,消息又回来了,就好像我仍然没有输入名字一样。与出生年份相同。即使我第二次输入了名字,exit() 函数也会一直退出。

userName = input("\nWhat is your name? ")

if userName == "": 
    input("\nPlease Enter your name: ")
else:
    if userName == "":
        print("\nName is missing, exiting program\n")(exit())

if userName.upper() == "STEVE":
        print("\nYou are the instructor")
else:
    print("\nHi " + userName + "." + " You are a student")


userYear = input("What year were you born? ")

if userYear.isnumeric() == False:
    input("\nPlease enter your birth year with all numbers: ")
else:   
    if userYear == "":
        input("\nYou never told me when you were born! ")



userCity = input("\nWhat city do you live in? ")

if userCity.lower() == "fresno" or userCity.lower() == "bakersfield":
     print("\ni'm sorry it's so hot where you live ")
else:
    print("\nHope you like it in " + userCity +
          " \nIt must be a good life for people born in " + userYear)

用“你叫什么名字?”提示用户输入他们的名字

如果名字为空(即用户按下回车键 但没有输入任何内容),再次提示他们输入他们的 名字与“请输入您的姓名”

如果用户再次输入空白,则显示如下 消息并退出程序...

“名称丢失,正在退出程序” 然后在控制台上跳过 2 行并退出程序。

假设程序没有退出,查看名字是否 输入的是“史蒂夫”。进行不区分大小写的比较,以便 “史蒂夫”的所有各种大写字母都将被视为 True (例如“史蒂夫”、“史蒂夫”、“史蒂夫”等)

如果名字是“Steve”,则显示“You are the coach”, 否则显示“嗨(输入姓名)您是学生”

提示用户“你是哪一年出生的?”

检查输入的出生年份是否不是数字(或是否为空白)

如果是这样,提示用户“请输入您的出生年份和所有数字” 并继续下面的#10(跳过#9)

如果不是,请继续下面的#9

用“你住在哪个城市?”提示用户

检查输入的城市值是“弗雷斯诺”还是 “贝克斯菲尔德”(不区分大小写)和...如果是,请显示“我很抱歉你住的地方太热了”]...如果不是,请显示“希望您喜欢(输入的城市)”

检查出生年份是否为空白,如果是,则显示“您从未告诉过我您的出生时间!”如果不是,则显示“对于出生于(输入的出生年份)的人来说,这一定是一个美好的生活”

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以使用while 循环很好地实现这一点。

    例如:

    username = ''
    
    while username == '':
        input('\nPlease Enter your name: ')
    

    这将不断要求他们输入自己的姓名,直到他们输入真实姓名(任何不是'' 的字符串)。

    【讨论】:

      【解决方案2】:

      您需要为此使用循环。

      userName = input("\nWhat is your name? ")
      
      if userName == "": 
          input("\nPlease Enter your name: ")
      else:
          if userName == "":
              print("\nName is missing, exiting program\n")
              exit()
      

      仅在您第一次请求时才接受输入(即)第 1 行:

      您应该会发现,如果您在输入中的空白后输入“steve”,程序将无法正常运行。

      也许将顶部替换为:

      username = ""
      while (username == ""):
            username = input("What is your name? ")
      

      我还要添加 python 支持 elif 语句,使用它而不是 else: if:

      【讨论】:

      • 我不需要循环,因为如果用户在第一次询问时没有输入他们的姓名,那么他们将被要求再次输入他们的姓名,但措辞不同。如果他们第三次没有输入他们的名字,那么输出将是 name is missing, exiting program。
      • 在这种情况下,您似乎仍然没有对第二个“输入”调用做任何事情,请尝试将其分配给第一行中的变量!
      【解决方案3】:

      您可以创建一个函数并重复使用您的代码,如下所示

      def take_input(field_name):
          while True:
              inp = input("please enter %s"%field_name)
              if len(inp)>1:
                  return inp
      
      
      
      input_fields = ["name", "year"]
      user_inputs = {}
      for field in input_fields:
          user_inputs[field] = take_input(field)
      
      print(user_inputs)
      

      【讨论】:

        最近更新 更多