ans =""for i inrange(100,1000):sum=0for j instr(i):sum+=(eval(j))**3ifsum== i:
ans +="{},".format(i)print(ans[:-1])
猴子吃桃 II
defpeach(n):if n ==10:return1else:return(peach(n +1)+1)*2for i inrange(10,0,-1):print("第{}天有{}只桃子".format(i, peach(i)))
侯先生爬楼梯
defclimb(n):
a, b =1,1for i inrange(n):
a, b = b, a + b
return a
n =int(input())print(climb(n))
编写函数输出自除数
defselfDivisor(num):
t =str(num)if'0'in t:return0for i in t:if num %int(i)!=0:return0return1
n =int(input())
ls =[]for i inrange(1, n +1):if selfDivisor(i):print(i, end=" ")
103
fi =open("data.txt",'r')for l in fi:
l = l.split(',')
s =0.0
n =len(l)for cours in l:
items = cours.split(':')
s +=eval(items[1])print("总和是:{},平均值是:{:.2f}".format(s, s / n))
fi.close()
汉诺塔求解
steps =0defhanoi(src, des, mid, n):global steps
if n ==1:
steps = steps +1print("[STEP{:>4}] {}->{}".format(steps, src, des))else:
hanoi(src, mid, des, n -1)
steps = steps +1print("[STEP{:>4}] {}->{}".format(steps, src, des))
hanoi(mid, des, src, n -1)
N =eval(input())
hanoi("A","C","B", N)
素数问题
defquestion_judge(question):"""接收一个字符串为参数,根据参数值判断问题类型,调用合适的函数进行操作。"""if question =='素数':# 如果输入”素数“,再输入一个正整数n,输出不大于n的所有素数
n =int(input())
output_prime(n)# 输出素数elif question =='回文素数':
n =int(input())
palindromic_prime(n)# 输出回文素数elif question =='反素数':
n =int(input())
reverse_prime(n)# 输出反素数elif question =='哥德巴赫猜想':
n =int(input())
goldbach_conjecture(n)else:print('输入错误')defis_prime(n):"""判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
减小判定区间,减少循环次数,提升效率"""if n <2:returnFalsefor i inrange(2,int(n **0.5+1)):if n % i ==0:returnFalseelse:returnTruedefoutput_prime(number):"""接收一个正整数为参数,遍历从0到number之间的所有整数
在一行中输出不大于number的所有素数,函数无返回值"""for i inrange(number+1):if is_prime(i):print(i,end=" ")defpalindromic(num):"""接收一个数字为参数,判定其是否为回文数,返回布尔值。"""returnstr(num)==str(num)[::-1]defpalindromic_prime(number):"""接收一个正整数参数number,遍历从0到number之间的所有整数,
若某个数是素数,且转为字符串后是回文字符串,则称其为回文素数
找出并在同一行中从小到大输出小于number的所有回文素数,各数字间用一个空格分隔,
函数无返回值"""for i inrange(number +1):if palindromic(i)and is_prime(i):print(i, end =' ')defreverse_num(num):"""接收一个整数,返回其逆序字符串对应的整数"""returnint(str(num)[::-1])defreverse_prime(number):"""接收一个正整数参数,找出并在同一行内输出所有小于number的反素数,数字间用一个空格分隔。
反素数指某数i及其逆序数都是素数,但数i对应的字符串不是回文字符串
函数无返回值"""for i inrange(number):ifnot palindromic(i)and is_prime(i)and is_prime(reverse_num(i)):print(i, end=" ")defgoldbach_conjecture(num):""" 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
当参数为不小于4的偶数时,将其分解为两个素数的加和,按小数+数的格式输出。
有多种组合时全部输出,但不输出重复的组合,例如输出8=3+5,不输出8=5+3。
参数为奇数或小于4时,输出'Data error!'
"""if num %2==0and num>=4:for i inrange(2,(num//2)+1):if is_prime(i)and is_prime(num-i):print(f"{num}={i}+{num-i}")else:print("Data error!")if __name__ =='__main__':
problems =input()
question_judge(problems)
回文素数
defisPrime(x):for i inrange(2,int(x **0.5)+1):
y = x % i
if y ==0:breakreturnFalseelse:returnTruedefpalindrome(x):ifstr(x)==str(x)[::-1]:returnTrueelse:returnFalse
n =int(input())
m =0
i =2while m < n:if isPrime(i)and palindrome(i):print(i, end=' ')
i = i +1
m = m +1else:
i = i +1
统计文件中的中文字数
defread_file(file):withopen(file,'r', encoding='utf-8')as data:
result = data.read()for i in result:if i in',。?!@#¥%……&*;(:; ) ——+|、·:“”’‘\n':
result = result.replace(i,"")returnlen(result)if __name__ =='__main__':file=input()
dic = read_file(file)print(dic)
文件中数据转列表
withopen('xrdfile.txt','r', encoding='utf-8')as f:
n =int(input())
ls =[]for i in f.readlines():
ls.append(i.strip().split())for i inrange(len(ls)):
ls[i][0]=int(float(ls[i][0]))
ls[i][1]=int(float(ls[i][1]))print(ls[:n])
利用数据文件统计成绩
data =open('成绩单.csv','r', encoding='utf-8')
score =[]
n =int(input())for line in data:
line = line.replace('\n','')
score.append(line.split(','))
score.sort(key=lambda x:int(x[9]))if n >len(score):
n =len(score)print("最低分{}分,最高分{}分".format(score[0][9], score[-1][9]))print(score[:n])print(score[-n:])
s =[0,0,0,0,0,0]for i inrange(len(score)):for j inrange(len(s)):
s[j]= s[j]+int(score[i][j +3])for l inrange(len(s)):
s[l]=round(s[l]/len(score),2)print(s)
data.close()
文本分析与加密
defencrypating(character, n):if character.islower():
temp =ord('a');character =chr(temp +(ord(character)- temp + n)%26)else:
temp =ord('A');character =chr(temp +(ord(character)- temp + n)%26)return character
l =list(str(input()));
secret =0for i in l:
secret =(secret +ord(i))%26
f =open("mayun.txt","r")
content = f.readlines()
upperchr = lowerchr = num = space = others =0
words =1for line in content:for i in line:if i.isupper():
upperchr +=1elif i.islower():
lowerchr +=1elif i.isspace():
space +=1elif i.isdigit():
num +=1else:
others +=1str= line.replace('.','')str=str.replace(',','')str=str.replace("'",'')
l =list(str.split(' '))
words +=len(l)print("%d %d %d %d %d"%(upperchr, lowerchr, num, space, others))print("共有%d单词"% words)print("%d"% secret)for line in content:
ret =""for char in line:if char.isalpha():
ret += encrypating(char, secret)elif char !='\n':
ret += char
print(ret)
身份证号批量升位
defid15218(id15):
a = id15
id15 = a[:6]+'19'+ a[6:]
Wi =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
s =0for i inrange(17):
s = s +int(id15[i])*int(Wi[i])
Y =str(s %11)ifint(Y)<10:
before ='0 1 2 3 4 5 6 7 8 9'
after ='1 0 X 9 8 7 6 5 4 3'
table =''.maketrans(before, after)
Y = Y.translate(table)else:
Y ='2'
id18 = id15[:17]+ Y + id15[17:]
id18 = id18.replace(id18[18],' '*1)return id18
n =int(input())withopen('id15.txt','r', encoding='utf-8')asfile:for i inrange(n):
line =file.readline()print(id15218(line), end='')
手机销售统计
sale2018 =[]
sale2019 =[]withopen('sale2018.csv','r', encoding='utf-8')as data2018:for line in data2018:
temp1 = line.split(',')
sale2018.append(temp1)withopen('sale2019.csv','r', encoding='utf-8')as data2019:for line in data2019:
temp2 = line.split(',')
sale2019.append(temp2)
n =int(input())
set2018 ={x[0]for x in sale2018}
set2019 ={x[0]for x in sale2019}if n ==1:
ls2019 =list(set2019)
ls2018 =list(set2018)
ls2019.sort()
ls2018.sort()print(ls2019)print(ls2018)elif n ==2:
set2 = set2019 & set2018
ls =list(set2)
ls.sort()print(ls)elif n ==3:
set3 = set2018 | set2019
ls =list(set3)
ls.sort()print(ls)elif n ==4:
set4 = set2019 - set2018
ls =list(set4)
ls.sort()print(ls)elif n ==5:
set5 = set2018 ^ set2019
ls =list(set5)
ls.sort()print(ls)
任意累积
defcmul(*num):sum=1for i in[*num]:sum*= i
returnsumprint(eval("cmul({})".format(input())))
编写函数输出自除数
defselfDivisor(num):
strNum =str(num)if'0'notin strNum:for i in strNum:if num %int(i)!=0:returnFalsereturnTrue
n =int(input())for i inrange(1, n +1):if selfDivisor(i):print(i, end=' ')
反素数
import math
defisPrime(x):for i inrange(2,int(math.sqrt(x))+1):if x % i ==0:returnFalsereturnTruedefisPalindrome(x):
a =int(x[::-1])if a !=int(x)and(isPrime(a)):returnTruereturnFalse
n =int(input(""))
i, j =0,2while i < n:if isPrime(j)and isPalindrome(str(j)):print(j, end=" ")
i +=1
j +=1
贪心的交易(函数)
import random
deff(prices):
le =len(prices)-1
i =0sum=0while(i +1)<= le:if prices[i]< prices[i +1]:sum+= prices[i +1]- prices[i]
i +=1returnsum
n =int(input())
m =int(input())
random.seed(m)
ls =[random.randint(1,100)for i inrange(0, n)]print(ls)print(f(ls))
汉诺塔
defhanoi(n, a, b, c):if n ==1:print(a,'-->', c)else:
hanoi(n -1, a, c, b)print(a,'-->', c)
hanoi(n -1, b, a, c)
n =int(input(""))
temp =input("")
str1 = temp.split(" ")
hanoi(n, str1[0], str1[1], str1[2])
各位数字之和为5的数
deffun(a):
d =str(a)ifsum([int(j)for j in d])==5:print(d, end=' ')
a =eval(input())for i inrange(a +1):
fun(i)
月份缩写(一)
months ="Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec."
month = months.split('.')
a =int(input(''))
index = a -1print(month[index]+".")
字符串加密
str1 =input()for i in str1:iford('A')<=ord(i)<=ord('Z'):print(chr(ord('A')+(ord(i)-ord('A')+5)%26), end='')eliford('a')<=ord(i)<=ord('z'):print(chr(ord('a')+(ord(i)-ord('a')+3)%26), end='')else:print(i, end='')
念数字
n =input()
dic ={0:"ling",1:"yi",2:"er",3:"san",4:"si",5:"wu",6:"liu",7:"qi",8:"ba",9:"jiu"}
ss =""for i instr(n):if i.isdigit():
ss += dic[int(i)]+" "else:print("fu", end=" ")print(ss.rstrip())
import sys
lst =list()
n =input()if n.count('.')==1or n.count('-')==1ornot n.isdigit():print('ERROR')
sys.exit()else:
n =int(n)for i inrange(0, n):
mlst =list()
n =input().split()
s0 =list(n[0])for i inrange(len(s0)):if i >3and i <11:
s0[i]='*'
a =''.join(s0)
mlst.append(a)
s1 =list(n[1])for i inrange(len(s1)):if i ==1:
s1[i]='*'
b =''.join(s1)
mlst.append(b)
s2 =list(n[2])for i inrange(len(s2)):if i <7and i >2:
s2[i]='*'
c =''.join(s2)
mlst.append(c)
lst.append(mlst)print(lst)
排序输出字典中数据
dic1 ={'Tom':21,'Bob':18,'Jack':23,'Ana':20}
dic2 ={'李雷':21,'韩梅梅':18,'小明':23,'小红':20}
dic1 =sorted(dic1.items(), key=lambda d:d[0], reverse=False)
dic2 =sorted(dic2.items(), key=lambda d:d[1], reverse=False)
n =int(input())if n>len(dic1):print([i[0]for i in dic1])else:print([i[0]for i in dic1[:n]])if n>len(dic2):print(dic2)else:print(dic2[:n])
用户转账
dic={"aaa":["123456",10000],"bbb":["888888",5000],"ccc":["333333",3000]}
ls =["bbb","ccc"]
user =input()if user notin ls:print("Wrong User")else:
zz =int(input())if zz > dic["aaa"][1]:print("Insufficient Funds")else:print("Tranfer Success")print("{}:{}".format("aaa",dic["aaa"][1]- zz))print("{}:{}".format(user,dic[user][1]+ zz))
用户登录(字典)
dic={"aaa":["123456",10000],"bbb":["888888",5000],"ccc":["333333",3000]}
account =input()if account notin dic.keys():print("Wrong User")else:
n =0while n !=3:
password =input()
n=n+1if password == dic[account][0]:print("Success")breakelif n <=2:print("Fail,"+str(3-n)+" Times Left")else:print("Login Denied")
走马灯数
print(999999//7)
集合元素删除
s =set([int(x)for x ininput().split()])
N =int(input())for i inrange(N):
cmd =input().split(" ")if cmd[0]=='pop':
s.pop()elif cmd[0]=='remove':ifint(cmd[1])in s:
s.remove(int(cmd[1]))elif cmd[0]=='discard':
s.discard(int(cmd[1]))print(sum(s))
罗马数字转换
s=input("")sum=0
c={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}for i inrange(len(s)):if i<(len(s)-1)and c[s[i]]< c[s[i+1]]:sum-= c[s[i]]else:sum+= c[s[i]]print(sum)
列表插入
ls =['2','3','0','1','5']
s =input("")
i =int(input(""))if i >=5:
ls.append(s)
ls.append(s)else:
ls.insert(i, s)
ls.append(s)print(ls)
列表排序
s =input("")
sList =list(s)
sList.sort()print(sList)
生成随机密码
from random import*
seed(0x1010)
s ='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*'
excludes =''
ls =[]whilelen(ls)<10:
pmd =''for i inrange(10):
pmd += choice(s)if pmd[0]in excludes:continueelse:
ls.append(pmd)
excludes += pmd[0]for i in ls:print(i)
杨辉三角形
lists =[[]for i inrange(10)]
lists[0].append(1)
lists[1].append(1)
lists[1].append(1)
last =2for i inrange(2,10):
last +=1for j inrange(0, last):
lists[i].append(1)for k inrange(1, last -1):
lists[i][k]= lists[i -1][k]+ lists[i -1][k -1]for i inrange(0,len(lists)):for j inrange(0,len(lists[i])):print(lists[i][j], end=" ")print("")
分期付款计算器
bj =float(input())
mon =int(input())
w =input()
l =float(input())
ls =[]
yh =0if w notin['AC','ACPI']:print('还款方式输入错误')elif w =='AC':for i inrange(mon):
hk = bj/mon +(bj-yh)*l
yh = yh +(bj/mon)
hk=round(hk,2)
ls.append(hk)print(ls)else:
hk =(bj*l*(1+l)**mon)/((1+l)**mon-1)
hk =round(hk,2)print(hk)
模拟布朗运动
import random
import math
random.seed(int(input()))
tup1 =(0,0)
arr =list()
arr.append(tup1)for i inrange(5):
Xold = arr[i][0]
Dx = random.choice([1,-1])
Hx = random.choice([1,2,3,4,5,6,7,8,9,10])
Xnew = Xold + Dx * Hx
Yold = arr[i][1]
Dy = random.choice([1,-1])
Vy = random.choice([1,2,3,4,5,6,7,8,9,10])
Ynew = Yold + Dy * Vy
tup1 =(Xnew,Ynew)
arr.append(tup1)print(arr)sum=0for i inrange(5):
temp = math.sqrt((arr[i][0]- arr[i+1][0])**2+(arr[i][1]-arr[i+1][1])**2)sum=sum+ temp
print(round(sum,2))
求所有素数
for x inrange(1,100):for y inrange(2, x):if x % y ==0:breakelse:print(x, end=" ")
数字不同数之和
n =input("")
s =set(n)
ans =0for i in s:
ans +=eval(i)print(ans)
str1 =input("")
ans =""for i in str1:if'a'<= i <='z':#i >= 'a' and i <= 'z':
ans += i.upper()elif'A'<= i <='Z':#i >= 'A' and i <= 'Z':
ans += i.lower()else:
ans += i
print(ans)
查找指定字符
str1 =input("")
str2 =input("")
index = str2.rfind(str1)#返回字符串最后一次出现的位置,如果没有匹配项则返回 -1。if index ==-1:print("Not Found")else:print("index = "+str(index))
凯撒加密
#ascii 字符串中的某个字符 offset 偏移量 flag true为小写false为大写defkaisa(ascii, offset, flag):if flag:iford(ascii)+ offset >122:returnchr(ord(ascii)+ offset -122+96)else:iford(ascii)+ offset >90:returnchr(ord(ascii)+ offset -90+64)returnchr(ord(i)+ offset)
str1 =input("")
offset =int(input(""))
ans =""for i in str1:if i.isalpha():
ans += kaisa(i, offset, i.lower())else:
ans += i
print(ans)
import time
num =input("")
start = time.perf_counter()
temp = num
whileTrue:if time.perf_counter()- start >0.9:print("False")breakelse:
ans =0for i in temp:
ans +=int(i)**2if ans ==1:print("True")breakelse:
temp =str(ans)
三角形周长及面积
a =float(input(""))
b =float(input(""))
c =float(input(""))
zc, mj, s =0,0,0
zc = a + b + c
p = zc /2
mj =(p *(p - a)*(p - b)*(p - c))**(1/2)print("周长=%.2f"% zc)print("面积=%.2f"% mj)
a除以b
a =float(input(""))
b =float(input(""))if b ==0:print("除零错误")else:
c = a / b
print("%.2f"% c)
2的n次方
import math
p =int(input(""))print(int(math.pow(2, p)))
计算阶乘
n =int(input(""))
ans =1for i inrange(1, n +1):
ans *= i
print(ans)
a =input("")
s ="PYTHON"
temp ="{0:"+ a +"^30}"print(temp.format(s[0:30]))
无空隙回声输出
str1 =input("")for i in str1:if i !=" ":print(i, end="")
三位水仙花数
list=[]for i inrange(100,1000):ifpow(i //100,3)+pow(i %10,3)+pow(i //10%10,3)== i:list.append(i)for i inrange(0,len(list)):if(i ==len(list)-1):print(list[i])else:print(list[i], end=",")
字典翻转输出
s =input()try:
dic =eval(s)
d ={value:key for key,value in dic.items()}print(d)except:print("输入错误")
中文词语逆序
import jieba
s =input()
s1 =list(jieba.lcut(s))print("".join(s1[::-1]))
双一流高校及所在省份统计
d ={"北京大学":"北京","中国人民大学":"北京","清华大学":"北京","北京航空航天大学":"北京","北京理工大学":"北京","中国农业大学":"北京","北京师范大学":"北京","中央民族大学":"北京","南开大学":"天津","天津大学":"天津","大连理工大学":"辽宁","吉林大学":"吉林","哈尔滨工业大学":"黑龙江","复旦大学":"上海","同济大学":"上海","上海交通大学":"上海","华东师范大学":"上海","南京大学":"江苏","东南大学":"江苏","浙江大学":"浙江","中国科学技术大学":"安徽","厦门大学":"福建","山东大学":"山东","中国海洋大学":"山东","武汉大学":"湖北","华中科技大学":"湖北","中南大学":"湖南","中山大学":"广东","华南理工大学":"广东","四川大学":"四川","电子科技大学":"四川","重庆大学":"重庆","西安交通大学":"陕西","西北工业大学":"陕西","兰州大学":"甘肃","国防科技大学":"湖南","东北大学":"辽宁","郑州大学":"河南","湖南大学":"湖南","云南大学":"云南","西北农林科技大学":"陕西","新疆大学":"新疆"}
counts ={}for place in d.values():
counts[place]= counts.get(place,0)+1
items =list(counts.items())for i inrange(0,len(items)):print(items[i][0]+':'+str(items[i][1]))
文本词频统计 – Hamlet
defgetText():
txt =open("hamlet.txt","r").read()
txt = txt.lower()for ch in'!"$%&()*+,-./:;<=>?@[\\]^_{}|·`''':
txt = txt.replace(ch," ")return txt
hamletTxt = getText()
words = hamletTxt.split()
counts ={}for word in words:
counts[word]= counts.get(word,0)+1
items =list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)for i inrange(10):
word, count = items[i]print(word)
n =int(input(""))
list2 =[]for i inrange(10**(n -1),10** n):
str1 =str(i)
sum1 =0for j in str1:
num =int(j)
sum1 += num ** n
if i == sum1:
list2.append(i)for i in list2:print(i)
回文判断
a =input("")
b = a[::-1]if a == b:print("True")else:print("False")
字符串连接
s =input()print('.'.join(s.split(',')))
首字母大写
str=input("")print(str.title())
字母查找2.0(函数)
deff(m,n):for i in m:if i notin n orlen(m)>len(n):return'NOT FOUND'return'FOUND'
m=input()if m.isalpha():
n=input()print(f(m, n))else:print('ERROR')
IP地址转换
str1 =input("")for i in str1:if i !='0'and i !='1':print('data error!')
exit()iflen(str1)!=32:print('data error!')else:
decimalIP =str(int(str1[0:8],2))for i inrange(1,4):
decimalIP = decimalIP +'.'+str(int(str1[i *8:(i +1)*8],2))print(decimalIP)
哥德巴赫猜想
n =int(input())defisPrime(n):if n <=1:returnFalsefor i inrange(2,(int(n **0.5)+1)):if n % i ==0:returnFalsereturnTrueif n %2!=0:print("Data error!")else:for x inrange(2, n):
y = n - x
if isPrime(x)==1and isPrime(y)==1:print("{:d} = {:d} + {:d}".format(n, x, y))break
计算ID号
import math
defisPrime(n):if n ==2or n ==3:returnTrueelse:for i inrange(2,int(math.sqrt(n))+1):if n % i ==0:returnFalseelse:returnTruedefcount(n, num):
s =0for i inrange(len(str(n))):
x =int(str(n)[-i -1])
s += n //10**(i +1)*10** i
if x == num:
s += n %10** i +1if x > num:
s +=10** i
return s
a =int(input())
b =int(input())for i inrange(a):if isPrime(i)and a % i ==0and isPrime(a // i):print("WHUT"+str(a // i)+str(i))breakprint(count(int(str(a // i)+str(i)), b))
通讯录(文件读取)
f =open("info.csv",'r', encoding='gbk')
l =[]for line in f:
l.append(line.replace("\n","").split(","))
d ={}for c in l:
d[c[0]]=[c[1], c[2]]
f.seek(0)
s =input()if s =='A':for line in f:print(line.replace(","," ").replace("\n",""))elif s =="D":print(d)else:print("ERROR")
f.close()
传感器日志光照统计
f =open("sensor-data-1k.txt","r")
avg, cnt =0,0for line in f:
ls = line.split()
cnt +=1
avg +=eval(ls[4])print("{:.2f}".format(avg / cnt))
十二星座
f =open("SunSign.csv","r", encoding='utf-8')
ls =[]for line in f:
line = line.replace("\n","")
ls.append(line.split(","))
f.close()whileTrue:
str1 =input()
str1.strip()
flag =Falseif str1 =='exit':breakfor line in ls:if str1 == line[0]:print("{}座的生日位于{}-{}之间".format(chr(eval(line[3])), line[1], line[2]))
flag =Trueifnot flag:print("输入星座名称有误!")
传感器采集数据
f =open("sensor-data.txt","r")
l =[]
s = f.readline()while s:
l.append(float(list(s.split())[4]))
s = f.readline()print("最大值、最小值、平均值分别是:%.2f,%.2f,%.2f"%(max(l),min(l),sum(l)/len(l)))
f.close()
m0_70106096: 到时候没
柳衣白卿: 补一下获取注解的知识,这个其实也挺重要的
AxeChen.: 真的好全面,谢谢博主,向博主学习!
敲键盘的小夜猫: 这篇博客无论是内容的深度还是作者的写作水平都非常优秀。希望作者能够继续保持对技术领域的热情和分享精神,为技术社区的发展做出更多贡献。感谢作者的辛勤付出,让我们一起期待更多精彩的技术文章! 【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】
混蛋小英雄: 太有实力了