首页 > 解决方案 > 输入的默认输出

问题描述

我正在尝试制作一个从全名中提取名字的示例代码。

如果我的输入不是字符串或只是按回车键,它将打印出输入有效名称。

但无论我输入什么,它都会打印出正常的结果。

此外,如果我什么都不输入,它只会出错。

我该如何解决这个问题?

name = input("Enter your full name (end to stop): ")


def print_first_name():

    if type(name) == str:
        name.split()
        first = name.split()[0]
        last = name.split()[-1]
        print('Your first name is: ', first)

    elif name == 'end':
        break

    else:
        print('You must enter at least your first name!')


print_first_name()

标签: pythonif-statementinput

解决方案


name = input("Enter your full name: ")

def print_first_name():
    if len(name) > 0:
        first = name.split()[0]
        if first.isalpha():
            print('Your first name is: ', first)
        else:
            print("Enter a valid name")
        last = name.split()[-1]
            
    else:
        print('You must enter at least your first name!')


print_first_name()

您编写的条件 (type(name)==str) 将始终为真

我们不能在循环外使用break。(在你的情况下,根本没有循环,所以你不能使用break)

如果您不输入任何内容,则会出现错误,因为该行

name.split()[0]

如果 name="", (这意味着一个空字符串), name.split() 给出一个空列表

在空列表中,索引 0 处将没有元素,因此会出错。


推荐阅读