目录
1. 打印2000-3000之间被7整除但不被5整除的数,以,(逗号)分隔
3. 计算1 - 1/2 + 1/3 - 1/4 + … + 1/99 - 1/100 + …直到最后一项的绝对值小于10的-5次幂为止
4. 编程将类似“China”这样的明文译成密文,密码规律是:用字母表中原来的字母后面第4个字母代替原来的字母,不能改变其大小写,如果超出了字母表最后一个字母则回退到字母表中第一个字
6. 对一个列表求和,如列表是[4, 3, 6],求和结果是 [4, 7, 13],每一项的值都等与该项的值加上前一项的值
7. 一个字符串 list,每个元素是 1 个 ip,输出出现次数最多的 ip
9. 实现一个简易版的计算器,功能要求:加、减、乘、除,支持多数同时进行计算
10.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
17.打印如图所示图案,要求支持指定行数,但行数必须是奇数行
18.要求实现一函数,该函数用于求两个集合的差集,结果集合中包含所有属于第一个集合但不属于第二个集合的元素
1. 打印2000-3000之间被7整除但不被5整除的数,以,(逗号)分隔
result = []
for i in range(2000,3000):
if i%7==0 and i%5!=0:
result.append(str(i))
print(",".join(result))
# 方法2
for i in range(2000,3000):
if i%7==0 and i%5!=0:
print(i,end=",")
2. 输出9*9口诀表
for i in range(1,10):
for j in range(1,i+1):
print("%d * %d = %d" %(j,i,i*j),end=" ")
print()
3. 计算1 - 1/2 + 1/3 - 1/4 + … + 1/99 - 1/100 + …直到最后一项的绝对值小于10的-5次幂为止
result = 0
for i in range(1,10**5+1):
if i % 2 == 0:
result -= 1/i
else:
result += 1/i
print(result)
# 方法2
result = 0.0
n = 1
while True:
if abs(1/n) < pow(10,-5):
break
else:
if n%2 == 1:
result += 1/n
n += 1
else:
result -= 1/n
n += 1
print(result)
4. 编程将类似“China”这样的明文译成密文,密码规律是:用字母表中原来的字母后面第4个字母代替原来的字母,不能改变其大小写,如果超出了字母表最后一个字母则回退到字母表中第一个字
def encrypt(s):
result=""
if not isinstance(s,str):
return
for i in s:
if (i >= 'a' and i <= 'v') or (i >= 'A' and i <= 'V'):
result += chr(ord(i)+4)
else:
result += chr(ord(i)+4-26)
return result
print(encrypt('China'))
print(encrypt('wxYz'))
"""
F:\课后练习题>py -3 p3-4.py
Glmre
abCd
"""
5. 输出以下如下规律的矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
for i in range(1,5):
for j in range(1,6):
print(j*i,end=" ")
print()
6. 对一个列表求和,如列表是[4, 3, 6],求和结果是 [4, 7, 13],每一项的值都等与该项的值加上前一项的值
l =[4, 3, 6]
result = []
for i in range(len(l)):
result.append(sum(l[0:i+1]))# result.append(reduce(lambda x,y:x+y,l[0:i+1]))
print(result)
# 方法2
def add_list(l):
if not isinstance(l,(list,tuple)):
print("请传入一个列表")
sys.exit()
result = []
num = 0
for i in l:
num += i
result.append(num)
return result
print(add_list([4,3,6]))
7. 一个字符串 list,每个元素是 1 个 ip,输出出现次数最多的 ip
ip_list=["192.168.1.101","192.168.1.102","192.168.1.103","192.168.1.102","192.168.1.101"]
result={}
for i in ip_list:
result[i]= ip_list.count(i)
for k,v in result.items():
if v == max(result.values()):
print("出现次数最多的IP:%s,出现%d次"%(k,v))
# 方法2
for i in ip_list:
if i not in result.keys():
result[i] = 1
else:
result[i] += 1
max_value=0
for v in result.values():
if v > max_value:
max_value = v
for k,v in result.items():
if v==max_value:
print("出现次数最多的IP:%s,出现%d次"%(k,v))
8. 打印100以内的素数
from math import sqrt
""