![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python(陈春晖)代码笔记
宝儿姐头号迷弟
这个作者很懒,什么都没留下…
展开
-
5:7-7 找出总分最高的学生(嵌套列表的排序方法)
如何按嵌套列表内层列表的某个元素排序:n = int(input())s = []for i in range(n): t = list(input().split()) s.append(t)for i in range(n): q = int(s[i][2]) + int(s[i][3]) + int(s[i][4]) s[i].append(q) # 获取列表的第6个元素def takeSecond(elem): return elem[5]原创 2020-05-29 12:09:40 · 431 阅读 · 0 评论 -
5:6-3 使用函数统计指定数字的个数
求高手指教:为何一个测试点过不去?def CountDigit(number, digit): t = len(number) cnt = 0 for i in range(t): if digit == number[i]: cnt += 1 return cntnumber, digit=input().split()number = number.strip()digit = digit.strip()count =原创 2020-05-28 20:33:42 · 309 阅读 · 1 评论 -
5:6-2 使用函数求素数和(处理PTA非零返回问题)
在结尾加exit(0), 至于为何就不清楚了def prime(p): prime = True if p == 1: prime = False else: for i in range(2, int(p**(1/2)+1)): if p%i == 0: prime = False return primedef PrimeSum(m,n): sum = 0 for原创 2020-05-28 20:15:05 · 490 阅读 · 0 评论 -
4:7-6 统计工龄
sorted()具体用法见菜鸟教程n = int(input())s = list(map(int, input().split()))year = {t: 0 for t in s}for t in s: year[t] += 1# 重点在用sorted()对字典排序,返回由元组构成的列表:y = sorted(year.items(), key=lambda year: year[0])for i in y: if i[1] != 0: print('{}:原创 2020-05-28 10:56:56 · 274 阅读 · 0 评论 -
4: 7-4 分析活动投票情况
问:哪位高手能告诉在下怎么就TM格式错误了?运行结果和他给的一样啊!s1 = {1, 2, 3, 4, 5}s2 = {6, 7, 8, 9, 10}s0 = {c for c in map(int, input().split(','))}for c in s2: if c not in s0: print(c, end=' ')原创 2020-05-28 10:20:18 · 261 阅读 · 1 评论 -
4:7-2 图的字典表示
第一次写字典题,items忘加()了,导致:invalid literal for int() with base 10:正确代码:n = int(input())a = set()e = set()c = 0for i in range(n): x = input() y = eval(x) for key,value in y.items(): a.add(key) if type(value)==dict: f原创 2020-05-28 09:53:56 · 191 阅读 · 0 评论 -
3: 7-26 二维数组中每行最大值和每行和
不依赖特定的矩阵,便于维护s = list(map(int, input().split()))l = len(s)r = int(l**(1/2))m = []step = 0for i in range(r): t = s[step:step+r] m.append(t) step += rfor i in m: s=sum(i) i.append(max(i)) i.append(s)for i in range(r): for原创 2020-05-27 21:32:06 · 1027 阅读 · 0 评论 -
3:7-28 找出不是两个数组共有的元素
注意:数字字符可以直接比较(大小、是否相同),不用先转为intjoin 只能对字符进行,int不可!定义空列表然后添加不在表中的元素进去是常用套路!!!s0 = list(input().split())s1 = list(input().split())s = []for a in s0[1:]: if a not in s1[1:] and a not in s: s.append(a)for b in s1[1:]: if b not in s0[1:]原创 2020-05-27 17:10:14 · 154 阅读 · 0 评论 -
3: 7-27 矩阵转置
列表推导式求转置矩阵很难理解s = list(map(int, input().split()))l = len(s)r = int(l**(1/2))m, t = [], []step = 0for i in range(r): t = s[step:r + step] step += r m.append(t)# 转置的列表推导式!!!m1 = [[row[col]for row in m]for col in range(r)]for i in range(r原创 2020-05-27 16:16:31 · 357 阅读 · 0 评论 -
3:7-20 判断上三角矩阵
n = int(input())for i in range(n): m = int(input()) M, temp = [], [] for j in range(m): temp = list(map(int, input().split())) M.append(temp) # 用flag表示是否上三角矩阵,好处在于一旦最内层循环被break,可根据flag值终止最外层循环 flag = 1 for k in rang原创 2020-05-27 15:17:25 · 143 阅读 · 0 评论 -
3:7-18 矩阵运算
n = int(input())A = []sum = 0# 注意矩阵怎么输入,这样的矩阵被转置了实际山for i in range(0, n): temp = list(map(int, input().split())) A.append(temp)for i in range(n): for j in range(n): if i != n-1 and j != n-1 and i+j != n-1: sum += A[i][j原创 2020-05-27 11:12:00 · 126 阅读 · 0 评论 -
7-7 统计学生平均成绩与及格人数
坑:输入0需特判,以exit(0)结束程序,否则报非0返回n = int(input())if(n == 0): print("average = 0.0") print("count = 0") exit(0)s = input().split()l = len(s)sum, cnt = 0, 0for i in range(n): sum += int(s[i])av = sum / lfor i in range(n): if int(s[i])原创 2020-05-26 21:08:33 · 1120 阅读 · 0 评论 -
4:7-4 验证“哥德巴赫猜想”
此题还有时间复杂度更低的方法,以后再补,(暴力破解会超时!)n = int(input())if n == 4: print('4 = 2 + 2')else: # 判断p是否素数: # 特判p==2: for j in range(2, n-2): if (n - 2) % j == 0: break else: print('{} = 2 + {}'.format(n, n - 2)) m =原创 2020-05-26 19:51:07 · 436 阅读 · 0 评论 -
7-12 字符串替换
# 一定要牢记list()将字符串转为单个字符组成的列表!s = list(input())l = len(s)for i in range(l): if 'A' <= s[i] <= 'Z': s[i] = chr(ord('A') + ord('Z') -ord(s[i]))s = ''.join(s)print(s)原创 2020-05-26 09:56:45 · 142 阅读 · 0 评论 -
7-7 求最大值及其下标
n = input()s = input().split()l = len(s)# 题目没说都为正数,所以初始max要赋右数第一个值max = int(s[l-1])for i in range(l): # 此处也可用range(0, -l, -1),对应从左数,但题目好像通不过?所以还是用递增序列吧 if int(s[l-i-1]) >= max: max = int(s[l-i-1]) t = l-i-1print(max, t)...原创 2020-05-26 09:07:24 · 180 阅读 · 0 评论 -
7-17 输出10个不重复的英文字母
s1 = input()#lower只能对字符串用s1 = s1.replace(' ', '')# 全换为小写以便找出重复字母s = s1.lower()l = list(s)# index返回字符第一次出现的位置l1 = [k for k in range(len(l)) if l[k] in s and l.index(l[k]) == k]s2 = ''.join([s1[k] for k in l1])if len(s2) >= 10: print(s2[:10])原创 2020-05-25 21:36:57 · 980 阅读 · 0 评论 -
7-5 字符转换
# 注意使用int的自动整理功能# 定义空字符串,后用append添加s = input()len = len(s)s0 = []for i in range(len): if ord('0')<= ord(s[i]) <= ord('9'): s0.append(s[i])s0 = ''.join(s0)print(int(s0))原创 2020-05-25 21:35:01 · 516 阅读 · 0 评论 -
7_14 求整数段和
x, y = map(int, input().split())sum = 0for i in range(x, y+1): print('{:>5}'.format(i), end='') sum += i if (i - x+1) % 5 == 0: print() # 参数为空默认换行if (i - x +1) % 5 != 0: print()print('Sum =', sum) # 多个对象间以空格分隔...原创 2020-05-23 23:53:28 · 107 阅读 · 0 评论