我正在尝试从文件中获取最长和最短的名称并打印出来。如果两个人的名字长度相同且最大/最小,我也需要打印出来。
我尝试过的事情:
try:
marvel_number = 0
with open("Marvel.txt") as numbers_file:
for line in numbers_file:
marvel_number = marvel_number + 1
print(len(marvel_number))
当我运行这段代码时,它给了我这个错误:
TypeError:类型为'int'的对象没有len()
以下代码将标识numbers_file中的最长行,并将其打印出来。
try:
longest_name = ''
with open("Marvel.txt") as numbers_file:
for line in numbers_file:
if len(line) > len(longest_name):
longest_name = line
print(longest_name)
您可以遍历文件中的所有这些名称,将它们存储在名为names
的列表中,然后根据每个项目的长度对该列表进行排序。默认情况下,Python的顺序是升序的,因此最短的名称是第一个元素,最长的名称是最后一个元素:
with open('marvel.txt', 'r') as numbers_file:
names = sorted([line.strip() for line in numbers_file], key=len)
print('Shortest name: ' + names[0])
print('Longest name: ' + names[-1])
这将打印:
Shortest name: Thanos
Longest name: Black Widow
lines = ["aaa","aa", "aaaaa", 1111,"aaaaaaa","aaa", "aaaaaaaaa", 1111,"aaa","aa", "aaaaaaaaa"]
max = 0
max_name = ""
cmax = 1
min = 100000
min_name = ""
cmin = 1
for name in lines:
if name == max_name:
cmax += 1
if name == min_name:
cmin += 1
counter = 0
for char in str(name):
counter += 1
if counter > max:
max = counter
max_name = name
cmax =1
if min > counter:
min = counter
min_name = name
cmin=1
if cmax == 2:
print(max_name)
if cmin == 2:
print(min_name)