如何解决在打印语句中插入中间名变量的条件语句,或删除名字和中间名变量之间的空格?
当用户输入中间名时,它要么从打印语句中删除 middleName 变量,并将其插入到打印语句中的 firstName 和 lastName 变量之间,条件是(条件语句)当用户输入中间名时,或者,在打印语句中保留 middleName 变量,然后当用户没有输入中间名时,去掉 firstName 和 middleName 变量之间的空白,因为就像现在的代码一样,当用户没有输入中间名时,输出中的名字和姓氏之间会留下一个巨大的空格。我如何编码这些条件过程;想要选择使用其中之一吗?我在别处搜索过代码无济于事。
这是我的代码:
import re
print('Political Elections Voter Eligibility\n\n')
pattern1 = "^[A-Z]|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]"
pattern2 = "^[A-Z]|^[A-Z].|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]"
pattern3 = "^[A-Z]|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]|^[A-Z]+ [A-Z]|^[A-Z]+ [A-Z]."
while True:
firstName = input("Enter your first name and tap or click 'Enter': ")
print('\n')
if re.search(pattern1,firstName):
break
else:
print('\n')
print('Invalid entry.')
while True:
middleName = input("Enter your middle name or middle initial and tap or click 'Enter' (Optional): ")
print('\n')
if len(middleName)==0 or re.search(pattern2,middleName):
break
else:
print('\n')
print('Invalid entry.')
while True:
lastName = input("Enter your last name and tap or click 'Enter': ")
print('\n')
if re.search(pattern3,lastName):
break
else:
print('\n')
print('Invalid entry.')
while True:
try:
age = int(input("Enter your age and tap or click 'Enter': "))
except ValueError:
print('\n')
print('Invalid entry.')
continue
print('\n')
if 1 <= age <= 125:
if 1 <= age <= 17:
print('%s %s %s,age %s,you are not eligible to vote in political elections.' % (firstName,middleName,lastName,age))
break
if 18 <= age <= 125:
print('%s %s %s,you are eligible to vote in political elections.' % (firstName,age))
break
else:
print('Invalid entry.')
解决方法
规范的方法是join
所有三个名称,然后使用split
和join
删除多个空格:
fullName = ' '.join([firstName,middleName,lastName])
printName = ' '.join(fullName.split())
print(printName)
这将处理任何前导或尾随空格,并且可以使用或不使用中间名。
,我认为最简单的方法是将每个名称字符串连接成一个字符串并一次性打印出来。
fullName = firstName + ' ' + middleName + (' ' if bool(middleName) else '') + lastName
print('%s,age %s,you are not eligible to vote in political elections.' % (fullName,age))
如果 bool(middleName)
是空字符串,则表达式 middleName
将被评估为 false。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。