文章目录
- **第1章-1** 从键盘输入两个数,求它们的和并输出
- **第1章-2** 从键盘输入三个数到a,b,c中,按公式值输出
- **第1章-3** **输出“Python语言简单易学”**
- **第2章-1** **计算 11+12+13+...+m**
- **第2章-2** **计算分段函数[1]**
- **第2章-3** **阶梯电价**
- **第2章-4** **特殊a串数列求和**
- **第2章-5** **求奇数分之一序列前N项和**
- **第2章-6** **求交错序列前N项和**
- **第2章-7** **产生每位数字相同的n位数**
- **第2章-8** **转换函数使用**
- **第2章-9** **比较大小**
- **第2章-10** **输出华氏-摄氏温度转换表**
- **第2章-11** **求平方与倒数序列的部分和**
- **第2章-12** **输出三角形面积和周长**
- **第2章-13** **分段计算居民水费**
- **第2章-14** **求整数段和**
- **第3章-1** **大于身高的平均值**
- **第3章-2** **查验身份证**
- **第3章-3** **输出字母在字符串中位置索引**
- **第3章-4** **查找指定字符**
- **第3章-5** **字符转换**
- **第3章-6** **求整数序列中出现次数最多的数**
- **第3章-7** **求最大值及其下标**
- **第3章-8** **字符串逆序**
- **第3章-9** **字符串转换成十进制整数**
- **第3章-10** **统计大写辅音字母**
- **第3章-11** **字符串排序**
- **第3章-12** **求整数的位数及各位数字之和**
- **第3章-13** **字符串替换**
- **第3章-14** **字符串字母大小写转换**
- **第3章-15** **统计一行文本的单词个数**
- **第3章-16** **删除重复字符**
- **第3章-17** **删除字符**
- **第3章-18** **输出10个不重复的英文字母**
- **第3章-19** **找最长的字符串**
- **第3章-20** **逆序的三位数**
- **第3章-21** **判断回文字符串**
- **第3章-22** **输出大写英文字母**
- **第4章-1** **生成3的乘方表**
- **第4章-2** **统计素数并求和**
- **第4章-3** **猴子吃桃问题**
- **第4章-4** **验证“哥德巴赫猜想”**
- **第4章-5** **求e的近似值**
- **第4章-6** **输出前 n 个Fibonacci数**
- **第4章-7** **统计学生平均成绩与及格人数**
- **第4章-8** **求分数序列前N项和**
- **第4章-9** **查询水果价格**
- **第4章-10** **最大公约数和最小公倍数**
- **第4章-11** **判断素数**
- **第4章-12** **求满足条件的斐波那契数**
- **第4章-13** **求误差小于输入值的e的近似值**
- **第4章-14** **统计字符**
- **第4章-15** **换硬币**
- **第4章-16** **jmu-python-判断是否构成三角形**
- **第4章-17** **水仙花数**
- **第4章-18** **猴子选大王**
- **第4章-19** **矩阵运算**
- **第4章-20** **求矩阵各行元素之和**
- **第4章-21** **判断上三角矩阵**
- **第4章-22** **找鞍点**
- **第4章-23** **求矩阵的局部极大值**
- **第4章-24** **打印九九口诀表**
- **第4章-25** **输出三角形字符阵列**
- **第4章-26** **求1!+3!+5!+……+n!**
- **第4章-27** **二维数组中每行最大值和每行和**
- **第4章-28** **矩阵转置**
- **第4章-29** **找出不是两个数组共有的元素**
- **第4章-30** **找完数**
- **第5章-1** **输出星期名缩写**
- **第5章-2** **图的字典表示**
- **第5章-3** **四则运算(用字典实现)**
- **第5章-4** **分析活动投票情况**
- **第5章-5** **统计字符出现次数**
- **第5章-6** **统计工龄**
- **第5章-7** **列表去重**
- **第5章-8** **能被3,5和7整除的数的个数(用集合实现)**
- **第5章-9** **求矩阵鞍点的个数**
- **第5章-10** **两数之和**
- **第5章-11** **字典合并**
- **第6章-1** **输入列表,求列表元素和(eval输入应用)**
- **第6章-2** **一帮一**
- **第6章-3** **列表或元组的数字元素求和**
- **第6章-4** **列表数字元素加权和(1)**
- **第6章-5** **列表元素个数的加权和(1)**
- **第6章-6** **求指定层的元素个数**
- **第6章-7** **找出总分最高的学生**
第1章-1 从键盘输入两个数,求它们的和并输出
a = input()
b = input()
a = int(a)
b = int(b)
print(a + b)
第1章-2 从键盘输入三个数到a,b,c中,按公式值输出
a, b, c = input().split(' ')
a = int(a)
b = int(b)
c = int(c)
print(b * b - 4 * a * c)
第1章-3 输出“Python语言简单易学”
s = "Python语言简单易学"
print(s.encode("utf-8"))
第2章-1 计算 11+12+13+…+m
m = int(input())
sum = 0
for i in range(11, m + 1):
sum += i
print("sum = {}".format(sum))
第2章-2 计算分段函数[1]
x = float(input())
if x == 0:
print("f(%.1f) = %.1f" % (x, x))
else:
print("f(%.1f) = %.1f" % (x, 1 / x))
第2章-3 阶梯电价
a = float(input())
tot = 0
if a < 0:
print("Invalid Value!")
else:
if a >= 50:
tot += 50 * 0.53
tot += (a - 50) * 0.58
else:
tot += a * 0.53
print("cost = %.2f" % tot)
第2章-4 特殊a串数列求和
a, b = input().split(' ')
a = int(a)
b = int(b)
cnt = tot = res = 0
while cnt < b:
tot = tot * 10 + a
res += tot
cnt += 1
print("s = %d" % res)
第2章-5 求奇数分之一序列前N项和
a = int(input())
tot = 0.0
for i in range(1, 2 * a, 2):
tot += 1.0 / i
print("sum = %.6f" % tot)
第2章-6 求交错序列前N项和
a = int(input())
tot = 0.0
op = 1
for i in range(1, a + 1):
tot += i / (2 * i - 1) * op
op *= -1
print("%.3f" % tot)
第2章-7 产生每位数字相同的n位数
a, b = input().split(',')
a = int(a)
a = str(a)
b = int(b)
print(a * b)
a, b = input().split(',')
b = int(b)
print(a.strip(' ') * b)
函数:str.strip
str.strip()
去掉字符串首尾的指定字符
str = "123abcrunoob321"
print (str.strip( '12' )) # 字符序列为 12
3abcrunoob3
第2章-8 转换函数使用
函数:eval转换作用
eval函数就是实现list、dict、tuple与str之间的转化
str函数把list,dict,tuple转为为字符串
https://blog.csdn.net/chen_zan_yu_/article/details/103339750
函数:int(,)转换函数
int('12',16)
表示输入的12是一个16进制的数,int将其转换为10进制
函数:.split(“x”, num)分隔
txt = "Google#Runoob#Taobao#Facebook"
# 第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)
# 第一个是分隔字符,第二个是分隔为num + 1个
['Google', 'Runoob#Taobao#Facebook']
第2章-9 比较大小
函数:print()中sep,end,file参数用法
end: 默认是换行,表示两个字符串最后以什么结尾。eg: 换行 end="\n"
sep: 默认是空格,表示两个字符串之间用什么分割。eg: 空格 sep=" "
sep用法(两个字符串之间)
print("file\n","abc","bcd","fff\n","poi")
print("-------------")
print("file\n","abc","bcd","fff\n","poi",sep='')
print("-------------")
print("file\n","abc","bcd","fff\n","poi",sep=' ')
print("-------------")
file
abc bcd fff
poi
-------------
file
abcbcdfff
poi
-------------
file
abc bcd fff
poi
-------------
end用法(字符串结尾)
print("file\n","abc","fff",sep='#########\n',end='')
print("--------------------")
print("file\n","abc","fff",sep='#########\n',end='\n')
print("--------------------")
print("file\n","abc","fff",sep='#########\n')
print("--------------------")
file
#########
abc#########
fff--------------------
file
#########
abc#########
fff
--------------------
file
#########
abc#########
fff
--------------------
file用法
with open('abc.txt','w') as f:
print("file\n","abc","fff",sep='#########\n',end='',file=f)
输出到abc.txt文件,注意文件行末没有换行符
print(*sorted(map(int, input().split())), sep="->")
第2章-10 输出华氏-摄氏温度转换表
a, b = input().split()
a = int(a)
b = int(b)
if a > b:
print("Invalid.")
else:
print("fahr celsius")
while a <= b:
print("{:d}{:>6.1f}".format(a, 5 * (a - 32) / 9))
a += 2
第2章-11 求平方与倒数序列的部分和
m, n = input().split()
m, n = int(m), int(n)
tot = 0
while m <= n:
tot += m ** 2
tot += 1 / m
m += 1
print("sum = %.6f" % tot)
第2章-12 输出三角形面积和周长
a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
if a + b <= c or a + c <= b or b + c <= a:
print("These sides do not correspond to a valid triangle")
else:
s = (a + b + c) / 2
S = (s * (s - a) * (s - b) * (s - c)) ** 0.5
C = a + b + c
print("area = {:.2f}; perimeter = {:.2f}".format(S, C))
第2章-13 分段计算居民水费
x = int(input())
if x <= 15:
print("{:.2f}".format(4 * x / 3))#注意不可以用注释了的方法
#print("%.2f" % 4 * x / 3)
else:
print("{:.2f}".format(2.5 * x - 17.5))
#print("%.2f" % 2.5 * x - 17.5)
第2章-14 求整数段和
a, b = input().split()
a, b = int(a), int(b)
tot = 0
cnt = 0
for i in range(a, b + 1):
cnt += 1
tot += i
print("{:>5}".format(i), end="")
if cnt % 5 == 0:
print("\n", end="")
elif i == b:
print("\n", end="")
print("Sum = %d" % tot)
第3章-1 大于身高的平均值
lst = list(map(int, input().split()))
tot = 0
for i in range(0, len(lst)):
tot += lst[i]
aver = tot / len(lst)
for i in range(0, len(lst)):
if lst[i] > aver:
print("{:d} ".format(lst[i]), end="")
第3章-2 查验身份证
第一用函数,python中需要注意不能有重名的变量,实参和形参的传递我也不知道该怎么更好的用变量来表达
jlist = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
flist = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
def judge(_mlist):
tot = 0
rnum = _mlist[-1]
_mlist = _mlist[:17]
for _i in range(0, 17):
if '9' >= _mlist[_i] >= '0':
tot += int(_mlist[_i]) * flist[_i]
else:
return 0
tot = tot % 11
if rnum == jlist[tot]:
return 1
else:
return 0
num = int(input())
cnt = 0
for i in range(num):
mlist = input()
if judge(mlist) == 0:
print(mlist)
else:
cnt += 1
if cnt == num:
print("All passed")
第3章-3 输出字母在字符串中位置索引
倒序字符串:s[::-1]
s = input()
a, b = input().split()
s = s[::-1]
for i in range(0, len(s)):
if s[i] == b:
print("{:d} {:s}".format((len(s) - i - 1), b))
for i in range(0, len(s)):
if s[i] == a:
print("{:d} {:s}".format((len(s) - i - 1), a))
第3章-4 查找指定字符
利用find函数直接查找,找最大的时候倒序一下
a = input()
b = input()
if b.find(a) != -1:
b = b[::-1]
print("index = {:d}".format(len(b) - b.find(a) - 1))
else:
print("Not Found")
第3章-5 字符转换
函数:str.join(x)通过str来连接x
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
output : a-b-c
a = input()
b = []
for i in a:
if i.isdigit():
b.append(i)
print(int("".join(b)))
第3章-6 求整数序列中出现次数最多的数
列表转字典转元组
counts = {}
lst = list(map(int, input().split()))
lst = lst[1: lst[0] + 1]
for i in lst:
counts[i] = counts.get(i, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
word, count = items[0]
print("{:d} {:d}".format(word, count))
第3章-7 求最大值及其下标
a = int(input())
lst = list(map(int, input().split()))
maxnum = max(lst)
print(maxnum, end=" ")
print(lst.index(maxnum))
第3章-8 字符串逆序
s = input()
print(s[::-1])
第3章-9 字符串转换成十进制整数
str1 = input()
s = "1234567890abcdefABCDEF"
c = ""
for i in str1:
if i in s:
c = c + i
if c == "":
print("0")
elif str1.find(c[0]) > str1.find('-'):
print(-int(c, 16))
else:
print(int(c, 16))
第3章-10 统计大写辅音字母
s = "AEIOU"
str1 = input()
cnt = 0
for i in str1:
if i.isupper() == 1 and i not in s:
cnt += 1
print(cnt)
第3章-11 字符串排序
lst = list(map(str, input().split()))
lst.sort()
print('After sorted:')
for i in lst:
print(i)
第3章-12 求整数的位数及各位数字之和
x = input()
res = 0
for i in range(len(x)):
res += int(x[i])
print("{:d} {:d}".format(len(x), res))
第3章-13 字符串替换
s = input()
c = []
for i in s:
if 'A' <= i <= 'Z':
c.append(chr(155 - ord(i)))
else:
c.append(i)
print("".join(c))
第3章-14 字符串字母大小写转换
s = input()
s = s.replace('#', '')
t = ''
for i in s:
if i.islower():
t += i.upper()
elif i.isupper():
t += i.lower()
else:
t += i
print(t)
第3章-15 统计一行文本的单词个数
s = input().split()
print(len(s))
第3章-16 删除重复字符
s = list(set(input()))
s.sort()
for i in s:
print(i, end="")
第3章-17 删除字符
strip消除前面的空格,replace进行字符删除
函数:str.replace(old, new, max)
old - 将被替换的子字符串
new - 新字符串,用于替换old字符串
max - 可选字符串替换不超过max次
s1 = input().strip()
s2 = input().strip()
s1 = s1.replace(s2.upper(), "").replace(s2.lower(), "")
print("result: {:s}".format(s1))
第3章-18 输出10个不重复的英文字母
先练成一个字符串然后通过set和list来解决问题
s = ''.join(input().split())
cnt = set()
idx = list()
for i in range(0, len(s)):
old = len(cnt)
if str.isalpha(s[i]):
cnt.add(s[i].lower())
new = len(cnt)
if old != new:
idx.append(s[i])
if len(cnt) == 10:
print(*idx, sep="")
exit()
print("not found")
第3章-19 找最长的字符串
t = int(input())
maxlen = 0
maxstr = ""
for i in range(0, t):
s = input()
if maxlen < len(s):
maxlen = len(s)
maxstr = s
print('The longest is: {:s}'.format(maxstr))
第3章-20 逆序的三位数
s = input()
s = s[::-1]
s = int(s)
print(s)
第3章-21 判断回文字符串
s1 = input()
s2 = s1[::-1]
if s1 == s2:
print(s1)
print("Yes")
else:
print(s1)
print("No")
第3章-22 输出大写英文字母
s1 = list(input())
s2 = ""
cnt = 0
for i in s1:
if i.isupper() and i not in s2:
s2 += i
cnt += 1
if cnt == 0:
print("Not Found")
else:
print(s2)
第4章-1 生成3的乘方表
n = int(input())
for i in range(0, n + 1):
print("pow(3,{:d}) = {:d}".format(i, 3 ** i))
第4章-2 统计素数并求和
for else 用法
m, n = input().split()
res = 0
cnt = 0
m, n = int(m), int(n)
if m <= 2:
m = 2
for i in range(m, n + 1):
for j in range(2, i):
if i % j == 0:
break
else:
res += i
cnt += 1
print("{:d} {:d}".format(cnt, res))
第4章-3 猴子吃桃问题
n = int(input())
res = 1
for i in range(1, n):
res = (res + 1) * 2
print(res)
第4章-4 验证“哥德巴赫猜想”
import math
def isprime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n) + 1)):
if n % i == 0:
return False
return True
x = int(input())
for j in range(2, x // 2 + 1):
z = x - j
if isprime(z) == 1 and isprime(j) == 1:
print("{:d} = {:d} + {:d}".format(x, j, z))
break
第4章-5 求e的近似值
a = 1
tot = 1
n = int(input())
for i in range(1, n + 1):
a *= i
t = 1 / a
tot += t
print("{:.8f}".format(tot))
第4章-6 输出前 n 个Fibonacci数
def fib(n):
a, b = 0, 1
for i in range(n + 1):
a, b = b, a + b
return a
n = int(input())
if n < 1:
print("Invalid.")
else:
for i in range(0, n):
print("{:11d}".format(fib(i)), end="")
if (i + 1) % 5 == 0:
print("")
第4章-7 统计学生平均成绩与及格人数
n = int(input())
if n == 0:
print('average = 0.0')
print('count = 0')
exit(0)
lst = list(map(int, input().split()))
count = 0
ave = sum(lst) / n
for i in lst:
if i >= 60:
count = count + 1
print('average = {:.1f}'.format(ave))
print('count = {:d}'.format(count))
第4章-8 求分数序列前N项和
a, b = 1, 2
n = int(input())
res = 0
for i in range(n):
res += b / a
a, b = b, a + b
print('{:.2f}'.format(res))
第4章-9 查询水果价格
print('[1] apple')
print('[2] pear')
print('[3] orange')
print('[4] grape')
print('[0] exit')
lst = list(map(int, input().split()))
for i in range(0, 5):
t = lst[i]
if t == 1:
print('price = 3.00')
elif t == 2:
print('price = 2.50')
elif t == 3:
print('price = 4.10')
elif t == 4:
print('price = 10.20')
elif t == 0:
exit(0)
else:
print('price = 0.00')
第4章-10 最大公约数和最小公倍数
注意使用两个//
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
xa, xb = input().split()
xa, xb = int(xa), int(xb)
print('{:d} {:d}'.format(gcd(xa, xb), xa * xb // gcd(xa, xb)))
第4章-11 判断素数
import math
def isprime(x):
#x = int(x)
for i in range(2, int(math.sqrt(x)) + 1):
if x % i == 0:
return False
if x == 1:
return False
return True
t = int(input())
cnt = 0
while cnt < t:
cnt += 1
n = int(input())
if isprime(n):
print('Yes')
else:
print('No')
第4章-12 求满足条件的斐波那契数
n = int(input())
a, b = 1, 1
while a < n:
a, b = b, a + b
print(a)
第4章-13 求误差小于输入值的e的近似值
eps = float(input())
fac = 1.0
pre1, pre2 = 1.0, 2.0
t = 1.0
while pre2 - pre1 >= eps:
t += 1.0
fac = fac * t
pre1, pre2 = pre2, pre2 + 1.0 / fac
print('{:.6f}'.format(pre2))
第4章-14 统计字符
letter = blank = digit = other = 0
st = input()
while True:
for i in st:
if i.isdigit():
digit += 1
elif i.isalpha():
letter += 1
elif i.isspace():
blank += 1
else:
other += 1
if letter + digit + other + blank >= 10:
break
st = input()
blank += 1
print("letter = {:d}, blank = {:d}, digit = {:d}, other = {:d}".format(letter, blank, digit, other))
第4章-15 换硬币
x = int(input())
cnt = 0
for i in range(int(x / 5) + 1, 0, -1):
for j in range(int(x / 2) + 1, 0, -1):
for k in range(int(x) + 1, 0, -1):
if 5 * i + 2 * j + k == x:
cnt += 1
print('fen5:{:d}, fen2:{:d}, fen1:{:d}, total:{:d}'.format(i, j, k, i + j + k))
print('count = %d' % cnt)
第4章-16 jmu-python-判断是否构成三角形
a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
if a + b <= c or a + c <= b or b + c <= a:
print('no')
else:
print('yes')
第4章-17 水仙花数
import math
n = int(input())
for i in range(int(math.pow(10, n - 1)), int(math.pow(10, n))):
tot = 0
j = i
while j:
tot += math.pow(j % 10, n)
j //= 10
if tot == i:
print('%d' % tot)
第4章-18 猴子选大王
n = int(input())
monkey = []
cnt = 0
t = 0
for i in range(1, n + 1):
monkey.append(i)
while len(monkey) > 1:
t += 1
cnt += 1
if cnt > len(monkey):
cnt = 1
if t == 3:
t = 0
monkey.pop(cnt - 1)
cnt -= 1
print(monkey[0])
第4章-19 矩阵运算
方法:建立二维数组
建立二维数组,然后根据特点去加判断然后求和
n = int(input())
a = []
tot = 0
for i in range(n):
s = input()
a.append([int(n) for n in s.split()])
for j in range(n):
for k in range(n):
if j != n - 1 and k != n - 1 and j + k != n - 1:
tot += a[j][k]
print(tot)
第4章-20 求矩阵各行元素之和
n, m = input().split()
n, m = int(n), int(m)
a = []
for i in range(n):
s = input()
a.append([int(n) for n in s.split()])
for j in range(n):
tot = 0
for k in range(m):
tot += a[j][k]
print(tot)
第4章-21 判断上三角矩阵
T = int(input())
cnt = 0
while cnt < T:
a = []
flag = False
cnt += 1
n = int(input())
for i in range(n):
s = input()
a.append([int(t) for t in s.split()])
for j in range(n):
for k in range(n):
if j > k:
if a[j][k] != 0:
flag = True
break
if flag:
break
if flag:
print('NO')
else:
print('YES')
第4章-22 找鞍点
n = int(input())
a = []
for i in range(n):
s = input()
a.append([int(t) for t in s.split()])
for j in range(n):
for k in range(n):
cnt = 0
for k1 in range(n):
if a[j][k] >= a[j][k1]:
cnt += 1
if cnt == n:
cnt = 0
for m in range(n):
if a[j][k] <= a[m][k]:
cnt += 1
if cnt == n:
print('{:d} {:d}'.format(j, k))
exit(0)
print('NONE')
第4章-23 求矩阵的局部极大值
n, m = input().split()
n, m = int(n), int(m)
a = []
for i in range(n):
s = input()
a.append([int(t) for t in s.split()])
flag = False
for i in range(1, n - 1):
for j in range(1, m - 1):
if a[i][j] > a[i - 1][j] and a[i][j] > a[i][j - 1] and a[i][j] > a[i][j + 1] and a[i][j] > a[i + 1][j]:
print('{:d} {:d} {:d}'.format(a[i][j], i + 1, j + 1))
flag = True
if not flag:
print('None {:d} {:d}'.format(n, m))
第4章-24 打印九九口诀表
n = int(input())
for i in range(1, n + 1):
for j in range(1, i + 1):
print('{:d}*{:d}={:<4d}'.format(j, i, i * j), end='')
print('')
第4章-25 输出三角形字符阵列
函数:输出对应的ascii:ord()
函数:实现ascii转字符:t = chr(65)
n = int(input())
idx = 65
cnt = 0
for i in range(n, 0, -1):
for j in range(i, 0, - 1):
print(chr(idx + cnt), end=' ')
cnt += 1
print('')
第4章-26 求1!+3!+5!+……+n!
n = int(input())
res = 0
for i in range(1, n + 1, 2):
t = 1
for j in range(1, i + 1):
t *= j
res += t
print('n={:d},s={:d}'.format(n, res))
第4章-27 二维数组中每行最大值和每行和
a = list(map(int, input().split()))
b = []
c = []
d = []
for i in range(0, 3):
b.append(a[i])
for i in range(3, 6):
c.append(a[i])
for i in range(6, 9):
d.append(a[i])
for i in b:
print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(b), sum(b)))
for i in c:
print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(c), sum(c)))
for i in d:
print('{:>4d}'.format(i), end='')
print('{:>4d}{:>4d}'.format(max(d), sum(d)))
第4章-28 矩阵转置
a = list(map(int, input().split()))
for i in range(0, 9, 3):
print('{:>4d}'.format(a[i]), end='')
print('')
for i in range(1, 9, 3):
print('{:>4d}'.format(a[i]), end='')
print('')
for i in range(2, 9, 3):
print('{:>4d}'.format(a[i]), end='')
第4章-29 找出不是两个数组共有的元素
a = list(map(int, input().split()))
b = list(map(int, input().split()))
c = []
for i in range(1, a[0] + 1):
for j in range(1, b[0] + 1):
if a[i] == b[j]:
c.append(a[i])
d = []
for i in range(1, a[0] + 1):
if a[i] not in c and a[i] not in d:
d.append(a[i])
for i in range(1, b[0] + 1):
if b[i] not in c and b[i] not in d:
d.append(b[i])
print(*d)
第4章-30 找完数
import math
m, n = input().split()
m, n = int(m), int(n)
flag = False
for i in range(m, n + 1):
fac = [1]
#fac = list()
#fac.append(1)
for j in range(2, int(math.sqrt(i) + 1)):
if i % j == 0:
fac.append(j)
if j * j != i:
fac.append(i // j)
#print(*fac)
if sum(fac) == i:
flag = True
fac.sort()
print('{:d} = 1'.format(i), end='')
for k in range(1, len(fac)):
print(' + {:d}'.format(fac[k]), end='')
print('')
if not flag:
print('None')
第5章-1 输出星期名缩写
days = {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri', 6: 'Sat', 7: 'Sun'}
n = int(input())
print(days[n])
第5章-2 图的字典表示
n = int(input())
num = 0
tot = 0
for i in range(n):
dic = eval(input())
#print(dic)
for j in dic:
t = dic[j]
#print(t)
for k in t:
num += 1
tot += t[k]
print('{:d} {:d} {:d}'.format(n, num, tot))
第5章-3 四则运算(用字典实现)
res = {'+': 'x+y', '-': 'x-y', '*': 'x*y', '/': "x/y if y!=0 else 'divided by zero'"}
x = int(input())
operator = input()
y = int(input())
r = eval(res[operator])
if type(r) != str:
print(format(r, '.2f'))
else:
print(r)
第5章-4 分析活动投票情况
str1 = set(input().split(','))
lst = []
for i in range(5, 11):
if str(i) not in str1:
lst.append(str(i))
print(*lst)
第5章-5 统计字符出现次数
str1 = input()
str2 = input()
cnt = 0
for i in str1:
if i == str2:
cnt += 1
print(cnt)
第5章-6 统计工龄
n = int(input())
lst = list(map(int, input().split()))
d = {}
for i in range(0, n):
if not lst[i] in d:
d[lst[i]] = 1
else:
d[lst[i]] += 1
for j in sorted(d.keys()):
print(j, end=':')
print(d[j])
第5章-7 列表去重
lst = eval(input())
lst1 = list(set(lst))
lst1.sort(key=lst.index)
print(*lst1)
第5章-8 能被3,5和7整除的数的个数(用集合实现)
m, n = input().split()
m, n = int(m), int(n)
set3 = set()
set5 = set()
set7 = set()
res = set()
for i in range(m, n + 1):
if i % 3 == 0:
set3.add(i)
if i % 5 == 0:
set5.add(i)
if i % 7 == 0:
set7.add(i)
res = set3 & set5 & set7
print(len(res))
第5章-9 求矩阵鞍点的个数
n = int(input())
a = []
for i in range(n):
s = input()
a.append([int(t) for t in s.split()])
res = 0
for j in range(n):
for k in range(n):
cnt = 0
for k1 in range(n):
if a[j][k] >= a[j][k1]:
cnt += 1
if cnt == n:
cnt = 0
for m in range(n):
if a[j][k] <= a[m][k]:
cnt += 1
if cnt == n:
res += 1
print(res)
第5章-10 两数之和
lst = list(map(int, input().split(',')))
n = int(input())
d = {}
for i in lst:
d[i] = n - i
for key, val in d.items():
if key in lst and val in lst:
print(lst.index(key), lst.index(val))
break
else:
print('no answer')
第5章-11 字典合并
a = dict(eval(input()))
b = dict(eval(input()))
for i in b.keys():
a[i] = a.get(i, 0) + b[i]
t = list(a.items())
t.sort(key=lambda x: ord(x[0]) if type(x[0]) == str else x[0])
c = str(dict(t)).replace(' ', '').replace("'", '"')
print(c)
第6章-1 输入列表,求列表元素和(eval输入应用)
lst = list(eval(input()))
print(sum(lst))
第6章-2 一帮一
n = int(input())
lst1 = []
lst2 = []
lst3 = []
for i in range(n):
t = input().split()
lst3.append(t[1])
if t[0] == '0':
lst1.append(t[1])
else:
lst2.append(t[1])
for i in range(int(n / 2)):
if lst3[i] in lst1:
j = lst1.index(lst3[i])
print(lst3[i] + ' ' + lst2[-(j + 1)])
else:
j = lst2.index(lst3[i])
print(lst3[i] + ' ' + lst1[-(j + 1)])
第6章-3 列表或元组的数字元素求和
str1 = input().replace('(', '').replace(')', '').replace('[', '').replace(']', '').split(',')
tot = 0
for i in str1:
if '"' not in i:
tot += int(i)
print(tot)
第6章-4 列表数字元素加权和(1)
str1 = input()
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
cnt = 0
for i in range(len(str1)):
if str1[i] == '[':
n += 1
elif str1[i] == ']':
n -= 1
elif str1[i] == ',':
continue
elif str1[i + 1] == ',' or str1[i + 1] == ']':
res += lst[cnt] * n
cnt += 1
print(res)
第6章-5 列表元素个数的加权和(1)
str1 = input()
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
for i in range(len(str1)):
if str1[i] == '[':
n += 1
elif str1[i] == ']':
n -= 1
elif str1[i] == ',':
continue
elif str1[i + 1] == ',' or str1[i + 1] == ']':
res += n
print(res)
第6章-6 求指定层的元素个数
str1 = input()
k = int(input())
str2 = str1.replace('[', '').replace(']', '')
lst = str2.split(',')
lst = [int(t) for t in lst]
res = 0
n = 0
for i in range(len(str1)):
if str1[i] == '[':
n += 1
elif str1[i] == ']':
n -= 1
elif str1[i] == ',':
continue
elif (str1[i + 1] == ',' or str1[i + 1] == ']') and n == k:
res += 1
print(res)
第6章-7 找出总分最高的学生
n = int(input())
ans = []
for i in range(0, n):
t = list(map(str, input().split()))
Student = dict()
Student['id'] = t[0]
Student['name'] = t[1]
Student['s1'] = int(t[2])
Student['s2'] = int(t[3])
Student['s3'] = int(t[4])
Student['tot'] = int(t[2]) + int(t[3]) + int(t[4])
ans.append(Student)
ans.sort(key=lambda x: x['tot'], reverse=True)
#print(ans[0])
print('{:s} {:s} {:d}'.format(ans[0]['name'], ans[0]['id'], ans[0]['tot']))