n,x=input().split()
n=int(n)
counter=0;
for i in range(n+1):
b=i+1
b=list(str(b))
if x in b:
counter+=1
print(counter)
你的代码错的原因是,b = i+1这里你多计一次,另外,如果有重复的数,你只计一次,比如22中2有两个,你只计一次
n, x = input().split()
n = int(n)
print((''.join(map(str, range(1, n + 1)))).count(x))
list=[int(s)for s in input().split()]
list.sort() # 将列表进行排序
sum=[]#定义一个用来记录每个数出现次数的列表
for i in range(101):
sum.append(0)#对sum列表进行初始化
for i in range(len(list)):#对列表list进行遍历
sum[list[i]]+=1#对于出现的数字i,他的计数数组sum[i]+1
t=list[-1]#对列表list进行去重
for i in range(len(list)-2,-1,-1):
if t==list[i]:
list .remove(list[i])
else :
t=list[i]
for i in range(101):#从0到100遍历
if sum[i] >= 2:#当数字i出现的次数大于等于2时
print(i,"occurs",sum[i],"times")
elif sum[i]==1:#当数字i只出现一次时
print(i,"occurs 1 time")
不知道你这个问题是否已经解决, 如果还没有解决的话:分别定义一个搜索函数和一个批量移动函数。
搜索函数需要传入的参数为root:要搜索的目录;target为目标文件类型(即扩展名)。
搜索函数输出 由目标文件path+文件名构成的列表。
批量移动函数传入的file_list参数是一个列表,形如搜索函数的输出结果,元素为带有path的文件名。dest为需要移动到的目录。
import os, shutil
file_list = []
# 搜索函数
def search_file(root, target):
for file in os.listdir(root):
path = root
try:
path = path + os.sep + file
if os.path.isdir(path):
search_file(path, target)
else:
if file.split('.')[-1] == target:
file_list.append(path)
except PermissionError as e:
print(e)
return file_list
# 批量移动函数
def move_file(file_list, dest):
for file in file_list:
try:
shutil.move(file, dest)
except shutil.Error as e:
print(e)
# 写入目标参数root,
def main():
root = "D:\\pic1"
target = "png"
dest_dir = "D:\\ABC\\pic2"
result = search_file(root, target)
print(result)
move_file(result, dest_dir)
if __name__ == '__main__':
main()
如图,目标文件被成功搜索出并转移:
以上代码没有明显的问题,可以运行正常。针对输入数据的格式和要求,程序并没有特殊限制,可以适应各种类型的数字列表。如果要进一步优化,可以使用Python内置的count()函数来实现,代码如下:
def count_occurrences(num_list, num_to_count):
return num_list.count(num_to_count)
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 5, 5]
print("数字5的出现次数为:", count_occurrences(list1, 5))
这样做的好处在于,使用内置函数可以提高代码的执行效率,并且减少出错的可能性。同时,更加简洁明了,易于阅读和理解。
参考资料: