我正在尝试从文本文件中读取数字(20个数字)并打印奇数和7的倍数
numbers = open('numbers' , 'r')
nums=[]
cnt=1
while cnt<20:
nums.append(numbers.readline().rstrip('\n'))
cnt += 1
print nums
oddNumbers = []
multiplesOf7 = []
for x in nums:
num = int(nums[x])
if num%2 > 0 :
oddNumbers.append(num)
elif num%7 > 0 :
multiplesOf7.append(num)
print('Odd numbers: ' , oddNumbers)
print('Multiples of 7: ' , multiplesOf7)
我正在
追踪(最近一次打电话):['21','26','27','28','7','14', “36”,“90”,“85”,“40”,“60”,“50”,“55”,“45”,“78”,“24”,“63”, '75','12']档案 “C:/Users/y0us3f/PycharmProjects/Slimanov/oddmultiples.py”,第16行, 在 num = int(nums [x])TypeError:list indices必须是整数,而不是str
使用退出代码1完成处理
答案 0 :(得分:2)
你已经在遍历nums中的值。不要再次从nums中查找值:
# nums = ['21', '26', '27', '28', '7', '14', '36', '90', '85', '40', '60', '50', '55', '45', '78', '24', '63', '75', '12']
for x in nums:
# x is '21', '26', etc.
num = int(x)
...
你得到一个例外是因为你试图使用字符串索引查找nums中的值:nums['21']
,但在这种情况下你甚至不需要,因为你已经拥有了值存储在x中的'21'。