我不能打印只有大写字母的名字



我只想知道如何打印列表中第一个大写字母为的名称,以及忽略python中以小写字母开头而循环

# Input
friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]
# Needed Output
"Mohamed"
"Shady"
"Sherif"
"Friends Printed And Ignored Names Count Is 2"

您可以使用ord内置函数来确定字符是大写还是小写。您也可以使用isupper方法。这是示例代码:

print([f for f in friends if f[0].isupper()])

isupper(( 函数可以用于此操作。

参考编号:https://www.geeksforgeeks.org/isupper-islower-lower-upper-python-applications/

friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]
# To print the words which start with Uppercase.
for val in friends:
if val[0].isupper():
print(val)

也许不是最优雅的解决方案,但只要你忽略了像"MOhamed":

# Input
friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]
uppercase = []
lowercase = []
for friend in friends:
if friend[0].isupper() == True:
uppercase.append(friend)
else: 
lowercase.append(friend)
for name in uppercase: 
print(name)

print("Ingnored names: {}".format(len(lowercase)))

如果您希望只有这些值具有第一个大写字母。

friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]

for a in friends:
if a[0].isupper():
print(a)

输出

Mohamed
Shady
Sherif

你也可以试试

friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]
uppercase = list(filter(lambda e: e[0].istitle(),friends) )
lowercase = list(filter(lambda e: e[0].islower(),friends))

print(uppercase)
print(lowercase)

输出

['Mohamed', 'Shady', 'Sherif']
['ahmed', 'eman']

如果您只想要标题大小写"(用于名称。(string您可以使用str.istitle()

friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif"]

for a in friends:
if a.istitle():
print(a)

OUtput

Mohamed
Shady
Sherif

您可以使用for循环,将列表中的元素与str.capitalize()while进行比较,然后打印元素。

您还需要ignored计数器来计算最后一条语句中未大写的元素:

friends = ["Mohamed", "Shady", "ahmed", "eman", "Sherif", "BATMAN", 'deJavu']
ignored = 0
for friend in friends:
while friend != friend.capitalize():
ignored += 1
break
else:
print(friend)
print(f"Friends Printed And Ignored Names Count Is {ignored}")
# Mohamed
# Shady
# Sherif
# Friends Printed And Ignored Names Count Is 4

最新更新