python的问题
times =names = ["A", "B", "C", "D", "E", "F", "G"]
i = 0
result_times = []
result_names = []
alpha_max = []
alpha_min = []
k = 1
for each in names:
result_names.append(each)
result_times.append(round(k,2))
if i < len(names) - 1:
k = times - times
i += 1
max_times = max(result_times)
min_times = min(result_times)
for a,x in enumerate(result_times):
if x == max_times :
alpha_max.append(names)
for a,x in enumerate(result_times):
if x == min_times :
alpha_min.append(names)
print("速度最快的是:",alpha_min,"耗费的时间是:",min_times)
print("速度最慢的是:",alpha_max,"耗费的时间是:",max_times)
times =
names = ["A", "B", "C", "D", "E", "F", "G"]
max_name = ]
min_name = ]
max_time = times
min_time = times
for i in range(1, len(names)):
each_name = names
each_time = times - times
if each_time > max_time:
max_name.clear()
max_name.append(each_name)
max_time = each_time
elif each_time == max_time:
max_name.append(each_name)
elif each_time < min_time:
min_name.clear()
min_name.append(each_name)
min_time = each_time
elif each_time == min_time:
min_name.append(each_name)
print(f"速度最快的是:{min_name},耗费时间是:{min_time}")
print(f"速度最慢的是:{max_name},耗费时间是:{max_time}")
任务: 假设有一个密室,每次只能放一个人进去,在进去之前和出来之后都要求摁一下门口的打卡机按钮,打卡机会依次将名字和进出时间戳记录为以下的格式:
times =
names = ["A", "B", "C", "D", "E", "F", "G"]
A 君是从时间戳为 0 的时候进入,从时间戳为 1 的时候出来,总共耗时为 1
B 君是从时间戳为 1 的时候进入,从时间戳为 3 的时候出来,总共耗时为 2
C 君是从时间戳为 3 的时候进入,从时间戳为 3.5 的时候出来,总共耗时为 0.5
G 君是从时间戳为 10 的时候进入,从时间戳为 10.8 的时候出来,总共耗时为 0.8
OK,现在要求大家编写代码,统计给定的数据,打印耗时最长和最短的人员名称。
我的问题:
1. 上面的是我的代码,请问下大佬有没有什么bug或者值得改进的地方?
2.下面的是答案的代码,请问和我的有啥区别,我的代码是否也能满足答案的代码的要求? times =
names = ["A", "B", "C", "D", "E", "F", "G"]
times.insert(0,0)
s=-times for x in range(len(times)-1) ]
def find(lst,x):
ta=[]
tmp=-1
for y in range(lst.count(x)):
tmp=lst.index(x,tmp+1,len(lst))
ta.append(names)
return ta
print(find(s,min(s)),"用时最少,用时:",min(s))
print(find(s,max(s)),"用时最长,用时:",max(s))
本帖最后由 wp231957 于 2022-3-8 14:28 编辑
答案对就行呗,我这个代码量好像少一些:
times =
names = ["A", "B", "C", "D", "E", "F", "G"]
times.insert(0,0)
s=-times for x in range(len(times)-1) ]
def find(lst,x):
ta=[]
for y in range(len(lst)):
ifx==lst: ta.append(y)
return ta
print( for x in find(s,min(s))],"用时最少,用时:",min(s))
print( for x in find(s,max(s))],"用时最长,用时:",max(s))
只要没有代码行数要求,运行一次答案对了就行,然后是学到了什么。
例子主要是教if……elif……elif……else 的循环运用。
2楼大佬主要是教函数的运用。 times =
names = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
result = []
for n in range(len(names)):
result.append((names, times - times))
result.sort(key = lambda x: x)
print(f"{result} 用时最少, 用时 {result}")
print(f"{result[-1]} 用时最长, 用时 {result[-1]}") 傻眼貓咪 发表于 2022-3-8 14:34
你这个有多个最小也可以吗{我没运行你代码} wp231957 发表于 2022-3-8 14:39
你这个有多个最小也可以吗{我没运行你代码}
不能,只能输出一个{:10_266:},因为我用手机写,没有测试 傻眼貓咪 发表于 2022-3-8 14:44
不能,只能输出一个,因为我用手机写,没有测试
我问了一下度娘,好像检索所有符合条件的索引值,咋的也得写个函数 wp231957 发表于 2022-3-8 14:39
你这个有多个最小也可以吗{我没运行你代码}
已修改:times =
names = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
result = dict()
for n in range(len(names)):
t = times - times
if t in result:
result.append(names)
else:
result = ]
m, n = max(result.keys()), min(result.keys())
print(f"{result} 用时最少, 用时 {n}")
print(f"{result} 用时最长, 用时 {m}") wp231957 发表于 2022-3-8 14:39
你这个有多个最小也可以吗{我没运行你代码}
我的这个有多个最小也可以把。
页:
[1]