PTA秒刷 搭配题库
{ "jmu-python-汇率兑换": "amount = input()\nif amount.startswith('R'):\n amount = float(amount[1:])\n print(f"${amount / 6:.2f}")\nelif amount.startswith('$'):\n amount = float(amount[1:])\n print(f"R{amount * 6:.2f}")\n", "求出歌手的得分": "n = int(input())\nscores = list(map(float, input().split()))\nscores.sort()\nscores = scores[2:-2]\naverage_score = sum(scores) / len(scores)\nprint(f'aver={average_score:.2f}')\n", "计算有n个字符串中最长的字符串长度": "n = int(input())\nmax_length = 0\nfor _ in range(n):\n s = input().strip()\n max_length = max(max_length, len(s))\nprint(f'length={max_length}')\n", "统计单词的个数": "input_str = input()\nwords = input_str.split()\ncount = len(words)\nprint(f'count = {count}')\n", "判断两个字符串是否为变位词": "def is_anagram(str1, str2):\n return sorted(str1) == sorted(str2)\n\nstr1 = input().strip()\nstr2 = input().strip()\nprint('yes' if is_anagram(str1, str2) else 'no')\n", "简易计算器": "a = int(input())\nb = int(input())\nprint(f'{a} + {b} = {a + b}')\nprint(f'{a} - {b} = {a - b}')\nprint(f'{a} * {b} = {a * b}')\nprint(f'{a} / {b} = {a / b}')\n", "密码强度检测": "# 由于题目没有给出具体的输入输出格式和样例,以下代码是一个通用的密码强度检测示例\n# 以下代码假设密码强度检测的规则如下:\n# 1. 密码长度至少为8位\n# 2. 密码必须包含至少一个小写字母\n# 3. 密码必须包含至少一个大写字母\n# 4. 密码必须包含至少一个数字\n# 5. 密码必须包含至少一个特殊字符(如!@#$%^&())\n\nimport re\n\ndef check_password_strength(password):\n if len(password) < 8:\n return False\n if not re.search("[a-z]", password):\n return False\n if not re.search("[A-Z]", password):\n return False\n if not re.search("[0-9]", password):\n return False\n if not re.search("[!@#$%^&()]", password):\n return False\n return True\n\npassword = input().strip()\nif check_password_strength(password):\n print("Strong")\nelse:\n print("Weak")\n", "jmu-Java&Python-统计一段文字中的单词个数并按单词的字母顺序排序后输出": "import sys\n\nwords = set()\nfor line in sys.stdin:\n line = line.strip()\n if line == "!!!!!":\n break\n if line:\n words.update(line.split())\n\nsorted_words = sorted(words)\nprint(len(sorted_words))\nfor word in sorted_words[:10]:\n print(word)\n", "输出10个不重复的英文字母": "s = input().strip()\nseen = set()\nres = []\nfor c in s:\n cl = c.lower()\n if 'a' <= cl <= 'z':\n if cl not in seen:\n seen.add(cl)\n res.append(c)\n if len(res) == 10:\n break\nif len(res) == 10:\n print(''.join(res))\nelse:\n print("not found")\n", "等差数列函数": "def is_arithmetic(nums):\n tag=True\n d=nums[1]-nums[0]\n for i in range(0,len(nums)-1):\n if nums[i+1]-nums[i]!=d:\n tag=False\n break\n return tag", "三个数的最大值": "def MaxNumber(x,y,z):\n list=[0,0,0]\n list[0],list[1],list[2]=x,y,z\n return max(list)", "字典的逆向查询之一": "import sys\nlines = sys.stdin.read().splitlines()\nd = {}\ni = 0\nwhile i < len(lines) and lines[i].strip() != "":\n p = lines[i].split(';')\n if len(p) >= 2:\n d.setdefault(p[1].strip(), []).append(p[0].strip())\n i += 1\nwhile i < len(lines) and lines[i].strip() == "":\n i += 1\nq = lines[i].strip() if i < len(lines) else ""\nfor sid in d.get(q, []):\n print(sid)", "三种语言的单词转换": "import sys\nlines = sys.stdin.read().splitlines()\ncn2en = {}\nen2da = {}\ni = 0\nwhile i < len(lines) and lines[i].strip() != "":\n p = lines[i].split()\n if len(p) >= 2:\n cn2en[p[0]] = p[1]\n i += 1\nwhile i < len(lines) and lines[i].strip() == "":\n i += 1\nwhile i < len(lines) and lines[i].strip() != "":\n p = lines[i].split()\n if len(p) >= 2:\n en2da[p[0]] = p[1]\n i += 1\nwhile i < len(lines) and lines[i].strip() == "":\n i += 1\nq = lines[i].strip() if i < len(lines) else ""\nif q in cn2en and cn2en[q] in en2da:\n print(en2da[cn2en[q]])\nelse:\n print("查无此词")", "打印数字下三角矩阵": "import sys\ndata = sys.stdin.read().split()\nT = int(data[0]); idx = 1\nfor _ in range(T):\n n = int(data[idx]); idx += 1\n m = [[0]n for _ in range(n)]\n for c in range(n):\n start = (c+1)(c+2)//2\n for k in range(0, n-c):\n r = n-1-k\n m[r][c] = start + kc + k(k+1)//2\n for r in range(n):\n print(" ".join(str(m[r][c]) for c in range(r+1)))", "查询首都或国名": "import sys\nlines = sys.stdin.read().splitlines()\nc2cap = {}\ncap2c = {}\ni = 0\nwhile i < len(lines) and lines[i].strip() != "":\n parts = lines[i].split()\n if len(parts) >= 2:\n c2cap[parts[0]] = parts[1]\n cap2c[parts[1]] = parts[0]\n i += 1\nwhile i < len(lines) and lines[i].strip() == "":\n i += 1\nq = lines[i].strip() if i < len(lines) else ""\nif q in c2cap:\n print(c2cap[q])\nelif q in cap2c:\n print(cap2c[q])\nelse:\n print("查无此名")", "找出相同的单词": "import sys\nlines = sys.stdin.read().splitlines()\na = set(lines[0].split())\nb = set(lines[1].split())\nprint(" ".join(sorted(a & b)))", "输出字符的全排列": "import sys\nfrom itertools import permutations\ns = sys.stdin.readline().strip()\nfor p in sorted(set("".join(p) for p in permutations(s))):\n print(p)", "三国演义中文分词与词频统计": "import sys\nimport jieba\njieba.setLogLevel(60)\nnames = {"曹操","刘备","孙权","诸葛亮","孔明","关羽","云长","张飞","翼德","赵云","子龙","马超","孟起","黄忠","汉升","周瑜","公瑾","吕布","玄德","华雄","颜良","文丑","周郎","仲谋","许褚","夏侯渊"}\ntext = sys.stdin.read()\ncnt = {}\norder = []\nfor w in jieba.lcut(text):\n if w in names:\n if w not in cnt:\n cnt[w] = 0\n order.append(w)\n cnt[w] += 1\nfor w in order:\n print("%s: %d" % (w, cnt[w]))", "找出相同的和不同的班级": "import sys\nlines = sys.stdin.read().splitlines()\na = [x.strip() for x in lines[0].split(';') if x.strip()]\nb = [x.strip() for x in lines[1].split(',') if x.strip()]\nsa = set(a)\nsb = set(b)\nprint(",".join(sorted(sa & sb)))\nprint(",".join(sorted(sa - sb)))", "数据清洗与统计": "import sys\ndata = sys.stdin.read().split()\nn = int(data[0])\nvals = [int(x) for x in data[1:1+n]]\ngood = [x for x in vals if x >= 0]\nprint("%.2f %.2f %.2f" % (max(good), min(good), sum(good)/len(good)))", "个人所得税计算": "import sys\nv = float(sys.stdin.read().strip())\nif v <= 36000:\n rate, ded = 0.03, 0\nelif v <= 144000:\n rate, ded = 0.10, 2520\nelif v <= 300000:\n rate, ded = 0.20, 16920\nelif v <= 420000:\n rate, ded = 0.25, 31920\nelif v <= 660000:\n rate, ded = 0.30, 52920\nelif v <= 960000:\n rate, ded = 0.35, 85920\nelse:\n rate, ded = 0.45, 181920\ntax = v * rate - ded\nif tax < 0:\n tax = 0.0\nprint("您的应纳税所得额为%.2f元,应缴纳税额为%.2f元。" % (v, tax))", "编写程序,检查字符串中是否包含子串": "import sys\ns1 = "Life is short. I use Python."\ns2 = sys.stdin.readline().strip()\nif s2.lower() in s1.lower():\n print("Yes")\nelse:\n print("No")", "亲和数判断": "import sys\ndata = sys.stdin.read().split()\nn = int(data[0])\nidx = 1\ndef divsum(x):\n if x <= 1:\n return 1\n s = 1\n i = 2\n while i * i <= x:\n if x % i == 0:\n s += i\n if i != x // i:\n s += x // i\n i += 1\n return s\nfor _ in range(n):\n a = int(data[idx]); b = int(data[idx + 1]); idx += 2\n print("YES" if (divsum(a) == b and divsum(b) == a) else "NO")", "URL解析": "import sys\ns = sys.stdin.readline().strip()\nfor kv in s.split("&"):\n if not kv:\n continue\n if "=" in kv:\n k, v = kv.split("=", 1)\n else:\n k, v = kv, ""\n print(k + ":" + v)", "文件扩展名识别": "import sys\ns = sys.stdin.readline().strip()\nparts = s.rsplit(".", 1)\next = parts[1].lower() if (len(parts) == 2 and parts[1]) else "unknown"\nprint(ext)", "jmu-python-分段函数": "x = eval(input())\nif x < 3:\n y = 1.2\nelif x == 3:\n y = 10\nelse:\n y = 2 * x + 1\nprint("f({:.2f})={:.2f}".format(x, y))", "字典合并": "import sys\nimport ast\n\ndef fmt(k):\n if isinstance(k, str):\n return '"' + k + '"'\n return str(k)\n\nlines = sys.stdin.read().split('\n')\nlines = [ln.strip() for ln in lines if ln.strip()]\n\nd = {}\nfor ln in lines[:2]:\n for k, v in ast.literal_eval(ln).items():\n d[k] = d.get(k, 0) + v\n\ndef sortkey(k):\n return (str(k), 1 if isinstance(k, str) else 0)\n\nparts = []\nfor k in sorted(d.keys(), key=sortkey):\n parts.append(fmt(k) + ':' + str(d[k]))\nprint('{' + ','.join(parts) + '}')\n", "函数-可变长度参数": "def WordCount(word):\n d = {}\n for w in word:\n w = w.lower()\n d[w] = d.get(w, 0) + 1\n items = sorted(d.items(), key=lambda kv: (-kv[1], kv[0]))\n return tuple(items)\n", "计算球体、圆柱体的表面积": "class Container:\n PI = 3.1415926\n total_area = 0\n def area(self):\n raise NotImplementedError\n def str(self):\n raise NotImplementedError\n\nclass Sphere(Container):\n def init(self, r):\n self.r = r\n def area(self):\n s = 4 * Container.PI * self.r * self.r\n Container.total_area += s\n return s\n def str(self):\n return 'Sphere: area = %.2f' % self.area()\n\nclass Cylinder(Container):\n def init(self, r, h):\n self.r = r\n self.h = h\n def area(self):\n s = 2 * Container.PI * self.r * (self.r + self.h)\n Container.total_area += s\n return s\n def str(self):\n return 'Cylinder: area = %.2f' % self.area()\n", "字典合并-1": "import sys, ast\nlines = sys.stdin.read().splitlines()\ndef load(s):\n return ast.literal_eval(s.strip())\nd1 = load(lines[0]); d2 = load(lines[1])\nres = {}\nfor k, v in d1.items():\n res[k] = v\nfor k, v in d2.items():\n if k in res and isinstance(res[k], (int, float)) and not isinstance(res[k], bool) and isinstance(v, (int, float)) and not isinstance(v, bool):\n res[k] = res[k] + v\n else:\n res[k] = v\ndef ko(k):\n return (0, k) if isinstance(k, int) else (1, k)\nparts = []\nfor k, v in sorted(res.items(), key=lambda kv: ko(kv[0])):\n ks = str(k) if isinstance(k, int) else repr(k)\n vs = str(v) if (isinstance(v, (int, float)) and not isinstance(v, bool)) else repr(v)\n parts.append(ks + ':' + vs)\nprint('{' + ','.join(parts) + '}')\n", "输入成绩,计算绩点和等级。": "s = input().strip()\nx = float(s)\nif x < 0 or x > 100:\n print('输入成绩有误!')\nelse:\n if x >= 90:\n g = 4.0 + (x - 90) / 10; lv = 'A'\n elif x >= 80:\n g = 3.0 + (x - 80) / 10; lv = 'B'\n elif x >= 70:\n g = 2.0 + (x - 70) / 10; lv = 'C'\n elif x > 60:\n g = 1.0 + (x - 60) / 10; lv = 'D'\n else:\n g = 0.0; lv = 'E'\n print('%.1f分对应的绩点为%.2f,等级为%s。' % (x, g, lv))\n", "EAN13条形码的验证": "import sys\ns = sys.stdin.read().strip()\nif len(s) != 13 or not s.isdigit():\n print('条形码错误')\nelse:\n d = [int(c) for c in s]\n c1 = d[0] + d[2] + d[4] + d[6] + d[8] + d[10]\n c2 = (d[1] + d[3] + d[5] + d[7] + d[9] + d[11]) * 3\n cc = (c1 + c2) % 10\n c = (10 - cc) % 10\n print('校验已通过' if c == d[12] else '校验未通过')\n", "统计班级成绩": "import re\nimport sys\ns = sys.stdin.read()\nitems = re.findall(r'([A-Za-z]+)([0-9]+(?:[.][0-9]+)?)', s)\nvals = []\ntotal = 0.0\nfor name, sc in items:\n v = float(sc)\n total += v\n vals.append((name, v))\navg = total / len(vals)\nmx = max(vals, key=lambda t: t[1])\nmn = min(vals, key=lambda t: t[1])\nprint('%.1f' % avg)\nprint('%s %.1f' % (mx[0], mx[1]))\nprint('%s %.1f' % (mn[0], mn[1]))\n", "班级排队": "import sys\nlines = sys.stdin.read().splitlines()\nn = int(lines[0])\nh = list(map(int, lines[1].split()))\ng = list(map(int, lines[2].split()))\ngirls = sorted(h[i] for i in range(n) if g[i] == 1)\nboys = sorted(h[i] for i in range(n) if g[i] == 0)\nprint(' '.join(map(str, girls + boys)))\n", "打印特殊三角形": "n = int(input())\nstarts = [0] * n\nstarts[0] = 1\nfor j in range(1, n):\n starts[j] = starts[j - 1] + (n - (j - 1))\nfor i in range(n):\n row = [starts[j] + i for j in range(n - i)]\n print(''.join('%-3d' % v for v in row).rstrip())\n", "特定数之和": "n = int(input())\ntot = 0\nfor i in range(1, n + 1):\n for c in str(i):\n if c in '2019':\n tot += i\n break\nprint(tot)\n", "输出全排列": "import itertools\nn = int(input())\nfor p in itertools.permutations(range(1, n + 1)):\n print(''.join(map(str, p)))\n", "求指定层的元素个数": "import ast\nimport sys\nlines = sys.stdin.read().splitlines()\ndata = ast.literal_eval(lines[0])\nlv = int(lines[1])\ndef isnum(x):\n return isinstance(x, (int, float)) and not isinstance(x, bool)\ndef cnt(x, d):\n if isinstance(x, (list, tuple)):\n return sum(cnt(i, d+1) for i in x)\n if isnum(x) and d == lv:\n return 1\n return 0\nprint(cnt(data, 0))\n", "列表元素的个数加权和(2)": "import ast\ndata = ast.literal_eval(input())\ndef isnum(x):\n return isinstance(x, (int, float)) and not isinstance(x, bool)\ndef w(x, lv):\n if isinstance(x, (list, tuple)):\n return sum(w(i, lv+1) for i in x)\n if isnum(x):\n return 11 - lv\n return 0\nprint(w(data, 0))\n", "列表元素个数的加权和(1)": "import ast\ndata = ast.literal_eval(input())\ndef isnum(x):\n return isinstance(x, (int, float)) and not isinstance(x, bool)\ndef w(x, lv):\n if isinstance(x, (list, tuple)):\n return sum(w(i, lv+1) for i in x)\n if isnum(x):\n return lv\n return 0\nprint(w(data, 0))\n", "查询国家面积和人数": "import sys\nlines=sys.stdin.read().splitlines()\nd={}\nblank=-1\nfor i,l in enumerate(lines):\n ls=l.strip()\n if ls=='':\n blank=i\n break\n p=ls.split(';')\n if len(p)>=3:\n d[p[0]]=[p[1],p[2]]\nq=None\nif blank>=0:\n for l in lines[blank+1:]:\n if l.strip()!='':\n q=l.strip()\n break\nout="没有相应的信息"\nif q:\n p=q.split(';')\n if len(p)>=2 and p[0] in d:\n if p[1]=='1':\n out="该国面积为%s平方千米"%d[p[0]][0]\n elif p[1]=='2':\n out="该国人口为%s万人"%d[p[0]][1]\nprint(out)", "无人驾驶小车校园送外卖(Python)": "import math\nm=int(input())\nn=int(input())\nprint(math.comb(m+n-2,m-1))", "生成字符地图的子地图": "import sys\ntokens=sys.stdin.read().split()\nidx=0\nout=[]\nwhile idx<len(tokens):\n k=int(tokens[idx])\n idx+=1\n if k==0:\n break\n grid=tokens[idx:idx+k]\n idx+=k\n for r in range(1,k):\n out.append(grid[r][1:k])\nfor x in out:\n print(x)", "词频统计 ": "words=['《','凉州','词','》',' ','葡萄','美酒','夜光杯',',','欲','饮','琵琶','马上','催','。',' ','醉卧','沙场','君莫笑',',','古来','征战','几人','回','?']\nd={}\norder=[]\nfor w in words:\n if w.strip()=='':\n continue\n if w not in d:\n d[w]=0\n order.append(w)\n d[w]+=1\nprint(','.join('%s:%d'%(w,d[w]) for w in order))", "使用for循环和字典功能,统计字符出现在一个英文句子中的次数": "s=input().lower()\nd={}\norder=[]\nfor c in s:\n if c not in d:\n d[c]=0\n order.append(c)\n d[c]+=1\nprint('{'+','.join("'%s':%d"%(c,d[c]) for c in order)+'}')", "足球联赛排名": "import sys\ndata=sys.stdin.read().split()\nit=iter(data)\nT=int(next(it))\nres=[]\nfor _ in range(T):\n n=int(next(it))\n pts=[0]*(n+1);gd=[0]*(n+1);gf=[0]*(n+1)\n for _ in range(n*(n-1)//2):\n i=int(next(it));j=int(next(it));p=int(next(it));q=int(next(it))\n gf[i]+=p;gf[j]+=q\n gd[i]+=p-q;gd[j]+=q-p\n if p>q:\n pts[i]+=3\n elif p<q:\n pts[j]+=3\n else:\n pts[i]+=1;pts[j]+=1\n teams=list(range(1,n+1))\n teams.sort(key=lambda t:(-pts[t],-gd[t],-gf[t],t))\n res.append(' '.join(str(t) for t in teams))\nfor x in res:\n print(x)", "通过两个列表构建字典": "l1=input().split()\nl2=input().split()\nd=dict(zip(l1,l2))\nprint(sorted(d.items()))", "乘法表,31= 3,乘积结果长度设置为2,结果之间空4格,倒序乘法表,右对齐": "n=int(input())\nfor i in range(n,0,-1):\n line=' '10(n-i)\n for j in range(i,0,-1):\n line+="%d*%d=%2d "%(i,j,ij)\n print(line)", "使用for循环输出九九乘法口诀表": "for i in range(1,10):\n row=[]\n for j in range(1,i+1):\n row.append("%dx%d=%d"%(i,j,ij))\n print(' '.join(row)+' ')", "106 双层循环": "n=int(input())\nfor i in range(1,n+1):\n print(' '.join(str(ij) for j in range(1,n+1)))", "105 三角形判断": "a,b,c=map(int,input().split())\nif a+b<=c or a+c<=b or b+c<=a:\n print("不是三角形")\nelif a==b==c:\n print("等边三角形")\nelif a==b or b==c or a==c:\n print("等腰三角形")\nelif aa+bb==cc or aa+cc==bb or bb+cc==aa:\n print("直角三角形")\nelse:\n print("一般三角形")", "凯撒密码 - 《Python编程基础及应用》第2版,习题5-6": "s=input()\nn=int(input())\nres=[]\nfor ch in s:\n if 'a'<=ch<='z':\n res.append(chr((ord(ch)-97+n)%26+97))\n elif 'A'<=ch<='Z':\n res.append(chr((ord(ch)-65+n)%26+65))\n else:\n res.append(ch)\nprint(''.join(res))", "罗素幻方": "import sys\ndata=sys.stdin.read()\ns=data.replace('[',' ').replace(']',' ').replace(',',' ')\nnums=list(map(int,s.split()))\nok=(len(nums)==9 and sorted(nums)==[1,2,3,4,5,6,7,8,9])\nif ok:\n m=[nums[0:3],nums[3:6],nums[6:9]]\n S=15\n for i in range(3):\n if sum(m[i])!=S:\n ok=False\n if sum([m[r][i] for r in range(3)])!=S:\n ok=False\n if m[0][0]+m[1][1]+m[2][2]!=S:\n ok=False\n if m[0][2]+m[1][1]+m[2][0]!=S:\n ok=False\nprint("是罗素幻方" if ok else "不是罗素幻方")", "计算三角形的周长和面积": "import sys,math\nx=sys.stdin.read().split()\na,b,c=map(float,x[:3])\nif a+b>c and a+c>b and b+c>a:\n p=(a+b+c)/2\n area=math.sqrt(p*(p-a)(p-b)(p-c))\n print("三角形的周长为:%.3f米,面积:%.3f平方米。"%(a+b+c,area))\nelse:\n print("三边数据错误。")", "成绩合并": "import sys\nimport ast\nd = {}\nfor line in sys.stdin.read().splitlines():\n line = line.strip()\n if not line:\n continue\n if line == "-1":\n break\n try:\n dd = ast.literal_eval(line)\n except Exception:\n continue\n for k, v in dd.items():\n d[k] = d.get(k, 0) + v\nfor k, v in sorted(d.items(), key=lambda kv: (-kv[1], kv[0])):\n print(k + ":" + str(v))", "学生成绩评价与预警系统": "import sys\ndata = sys.stdin.read().split()\np = float(data[0]); c = float(data[1])\nif c < p * 0.5:\n print("成绩大幅下滑,需要重点关注!")\nelif c > p * 1.5:\n print("成绩进步很大,请继续保持!")\nelse:\n if c >= 90:\n print("成绩优秀,继续保持!")\n elif c >= 80:\n print("成绩良好,还有提升空间!")\n else:\n print("成绩需努力,加强学习!")", "跳绳成绩统计": "import sys\nnums = list(map(int, sys.stdin.read().split()))\nc = {"A": 0, "B": 0, "C": 0, "D": 0, "E": 0}\nfor x in nums:\n if x >= 175:\n c["A"] += 1\n elif x >= 165:\n c["B"] += 1\n elif x >= 155:\n c["C"] += 1\n elif x >= 145:\n c["D"] += 1\n else:\n c["E"] += 1\nfor k in "ABCDE":\n print(k + ":" + str(c[k]))", "体测合格了吗?": "import sys\ndata = sys.stdin.read().split()\nn = int(data[0])\nidx = 1\nfor _ in range(n):\n cnt = int(data[idx]); g = data[idx + 1]; idx += 2\n if g == "M":\n if cnt >= 15:\n print("优秀")\n elif cnt >= 10:\n print("良好")\n elif cnt >= 5:\n print("及格")\n else:\n print("不及格")\n else:\n if cnt >= 45:\n print("优秀")\n elif cnt >= 35:\n print("良好")\n elif cnt >= 25:\n print("及格")\n else:\n print("不及格")", "字符串中提取数字": "def trans(s):\n s=list(s)\n res=""\n for i in s:\n if i>='0' and i<='9':\n res+=i\n return res", "使用字符串的索引和切片知识输入月份数字,输出英文月份缩写": "m=int(input())\nmonths=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']\nprint(months[m-1])", "钟楼 - 《Python编程基础及应用》第2版,习题4-1": "T=int(input())\nN=T%12\nif N==0:\n N=12\nprint("当"N)", "计算圆面积": "import sys\nimport math\ndata = sys.stdin.read().split()\nr_s = data[0]; p_s = data[1]\nr = float(r_s); p = int(p_s)\narea = math.pi * r * r\nprint("半径为%s米的圆面积为%.f平方米,计算结果保留%d位小数。" % (r_s, p, area, p))", "多项式求和": "import sys\nimport ast\nlines = [l for l in sys.stdin.read().splitlines() if l.strip()]\nd1 = ast.literal_eval(lines[0])\nd2 = ast.literal_eval(lines[1])\nd = {}\nfor k, v in d1.items():\n d[k] = d.get(k, 0) + v\nfor k, v in d2.items():\n d[k] = d.get(k, 0) + v\nitems = sorted([(k, v) for k, v in d.items() if v != 0], key=lambda kv: -kv[0])\nif not items:\n print(0)\nelse:\n print(",".join("(%d,%d)" % (k, v) for k, v in items))", "列表数字元素加权和(2)": "import ast\ndata = ast.literal_eval(input())\ndef isnum(x):\n return isinstance(x, (int, float)) and not isinstance(x, bool)\ndef w(x, lv):\n if isinstance(x, (list, tuple)):\n return sum(w(i, lv+1) for i in x)\n if isnum(x):\n return x * lv if lv % 2 == 1 else -x * lv\n return 0\nprint(w(data, 0))\n", "列表数字元素加权和(1)": "import ast\ndata = ast.literal_eval(input())\ndef isnum(x):\n return isinstance(x, (int, float)) and not isinstance(x, bool)\ndef w(x, lv):\n if isinstance(x, (list, tuple)):\n return sum(w(i, lv+1) for i in x)\n if isnum(x):\n return x * lv\n return 0\nprint(w(data, 0))\n", "列表或元组的数字元素求和": "import ast\ndata = ast.literal_eval(input())\ndef s(x):\n if isinstance(x, (list, tuple)):\n return sum(s(i) for i in x)\n if isinstance(x, int):\n return x\n return 0\nprint(s(data))\n", "jmu-python-生日悖论": "import random\nparts = input().split()\nrandom.seed(int(parts[0]))\nn = int(parts[1])\ncnt = 0\nfor _ in range(n):\n days = [random.randint(1, 365) for _ in range(23)]\n if len(set(days)) < 23:\n cnt += 1\nprint('rate=%.2f' % (cnt / n))\n", "jmu-python-重复元素判定": "import sys\nlines = sys.stdin.read().splitlines()\nn = int(lines[0].strip())\nt = 0\nf = 0\nfor i in range(1, n+1):\n items = lines[i].split()\n if len(set(items)) < len(items):\n t += 1\n else:\n f += 1\nprint('True=%d, False=%d' % (t, f))\n", "jmu-python-随机生成密码": "import random\nx = int(input())\nn = int(input())\nm = int(input())\nrandom.seed(x)\nchars = list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')\nfor _ in range(n):\n print(''.join(random.choice(chars) for _ in range(m)))\n", "jmu_python_最大公约数&最小公倍数": "a, b = map(int, input().split(','))\nx, y = a, b\nwhile y:\n x, y = y, x % y\ng = x\nl = a * b // g\nprint('GCD:%d, LCM:%d' % (g, l))\n", "jmu-python-判断是否构成三角形": "a, b, c = map(int, input().split())\nprint('yes' if a+b>c and a+c>b and b+c>a else 'no')\n", "字典的逆向查询之二": "import sys\nlines = sys.stdin.read().splitlines()\ndata = {}\ntarget = ''\nfor ln in lines:\n if ';' in ln:\n a, b = ln.split(';', 1)\n data.setdefault(b, []).append(a)\n elif ln.strip():\n target = ln.strip()\nids = data.get(target)\nif ids:\n for x in ids:\n print(x)\nelse:\n print('查无此名')\n", "词频统计": "words=['《','凉州','词','》',' ','葡萄','美酒','夜光杯',',','欲','饮','琵琶','马上','催','。',' ','醉卧','沙场','君莫笑',',','古来','征战','几人','回','?']\nd={}\norder=[]\nfor w in words:\n if w.strip()=='':\n continue\n if w not in d:\n d[w]=0\n order.append(w)\n d[w]+=1\nprint(','.join('%s:%d'%(w,d[w]) for w in order))", "103 简单实时数据处理系统": "import sys\nnums=[int(x) for x in sys.stdin.read().split()]\npos=0\nneg=0\ntot=0\ncnt=0\nfor v in nums:\n if v==0:\n break\n if v>0:\n pos+=v\n else:\n neg+=v\n tot+=v\n cnt+=1\nprint(pos)\nprint(neg)\nprint("%.2f"%(tot/cnt))", "密码验证(Python)": "import sys\nfor line in sys.stdin:\n s=line.strip()\n if s=='':\n continue\n if s.lower()=='q':\n break\n ok = len(s)>=8 and any('A'<=c<='Z' for c in s) and any('0'<=c<='9' for c in s)\n if ok:\n print("密码设置成功")\n break\n else:\n print("密码不符合要求,请重新输入")", "计算分段函数": "x=float(input())\nif x==0:\n y=0.0\nelse:\n y=1.0/(3x)\nprint("对应的函数值为:%.3f"%y)", "计算停车费": "t=float(input())\nif t<1:\n fee=0.0\nelif t<=3:\n fee=5.0\nelse:\n fee=10.0*t\n if fee>50:\n fee=50.0\nprint("停车费用为: %.1f 元"%fee)", "个人所得税 - 《Python编程基础及应用》第2版,习题3-5": "inc=float(input())\nbrk=[0,36000,144000,300000,420000,660000,960000]\nrate=[0.03,0.10,0.20,0.25,0.30,0.35,0.45]\nt=0.0\nfor i in range(7):\n lo=brk[i]\n hi=brk[i+1] if i<6 else float('inf')\n if inc>lo:\n part=min(inc,hi)-lo\n t=t+partrate[i]\nprint("%.2f"%t)", "身份证解析 - 《Python编程基础及应用》第2版,习题4-7": "s=input().strip()\nprint("地区编号:"+s[:6])\nprint("出生日期:"+s[6:14])", "大月与小月 - 《Python编程基础及应用》第2版,习题4-3": "m=int(input())\ndays=[31,28,31,30,31,30,31,31,30,31,30,31]\nprint("%d月有%d天"%(m,days[m-1]))", "计算字符串中小写字母的数量。": "import sys\ns = sys.stdin.read()\nprint(sum(1 for ch in s if ch.islower()))", "训练时间": "import sys\ndata = sys.stdin.read().split()\nn = int(data[0]); m = int(data[1])\na = list(map(int, data[2:2+n]))\nlo = max(a); hi = sum(a)\ndef ok(limit):\n cnt = 1\n cur = 0\n for v in a:\n if cur + v > limit:\n cnt += 1\n cur = v\n else:\n cur += v\n return cnt <= m\nwhile lo < hi:\n mid = (lo + hi) // 2\n if ok(mid):\n hi = mid\n else:\n lo = mid + 1\nprint(lo)", "石头剪刀布(Python)": "import sys\nimport random\nrandom.seed(50)\nnames = {0: "石头", 1: "剪刀", 2: "布"}\nfor token in sys.stdin.read().split():\n if token not in ("0", "1", "2"):\n print("输入无效,游戏结束。")\n break\n u = int(token)\n c = random.randint(0, 2)\n d = (u - c) % 3\n if d == 0:\n res = "平局"\n elif d == 2:\n res = "你胜"\n else:\n res = "电脑胜"\n print("你出:%s,电脑出:%s,结果:%s" % (names[u], names[c], res))", "众数 - 《Python编程基础及应用》第2版,习题6-1": "import sys\nfrom collections import Counter\nnums = []\nfor x in sys.stdin.read().split():\n v = int(x)\n if v == -1:\n break\n nums.append(v)\nc = Counter(nums)\nmode = max(c, key=lambda k: c[k])\nprint("众数:%d" % mode)", "矩阵运算 - 《Python编程基础及应用》第2版,习题5-8": "import sys\ndata = sys.stdin.read().split()\nn = int(data[0])\nvals = list(map(int, data[1:1+nn]))\nm = [vals[in:(i+1)*n] for i in range(n)]\nfor i in range(n):\n print("第%d行的和 = %d" % (i+1, sum(m[i])))\nfor j in range(n):\n print("第%d列的和 = %d" % (j+1, sum(m[i][j] for i in range(n))))\nprint("对角线元素之和 = %d" % sum(m[i][i] for i in range(n)))" }