python - 输入的默认输出
问题描述
我正在尝试制作一个从全名中提取名字的示例代码。
如果我的输入不是字符串或只是按回车键,它将打印出输入有效名称。
但无论我输入什么,它都会打印出正常的结果。
此外,如果我什么都不输入,它只会出错。
我该如何解决这个问题?
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()
解决方案
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 处将没有元素,因此会出错。
推荐阅读
- mysql - mysql - 使用特定值的计数
- matlab - 如何绘制多个变量的总和?
- coldfusion - ColdFusion 2016 上的 SFTP 问题
- powershell - Powershell 为所有即将到期的用户向经理发送一封电子邮件
- ms-access - 在多列组合框中选择不同的项目不会更新显示的值 - Access 2016
- .net-core - 数据库查询不考虑事务
- php - CodeIgniter 3 URI 参数和 404 页
- nuget - NuGet pack 命令在 & 字符 (&) 上失败
- c++ - 如何用零填充 3D 数组?
- docker - 如何将 Jenkins 环境变量注入 pom.xml