1.银行利率问题
num = int (input("请输入你要存的金额:"))
end_num = int (input("你目标的金额:"))
years = 0
while num<end_num:
years += 1
num =num+ num*0.05
print(f"第{years}年的本金加利息是:",num)
print(f"一共需要{years}年")
2.从键盘接收一个字符串,判断是不是回文
str1 = input("请输入一个字符串:")
if str1[::1]==str1[::-1]:
print('是一个回文串')
else:
print("不是一个回文串")
3.打印九九乘法表
for i in range(1,10):
for j in range(1,10):
if j <=i:
print(f'{j}*{i}={i*j}',end=',')
j+=1
print('\n')
4.打印100-1000以内的水仙花数,例如:153 = 13 + 53 + 3**3
for i in range(100,1000):
str1=str(i)
a=str1[0]
b = str1[1]
c = str1[2]
count = int(a)**3+int(b)**3+int(c)**3
if i==count:
print(f'{i}是一个水仙花数')
else:
continue)
5.判断空气质量
while True:
value_pm = input("输入本次需要查询的值,输入Q则退出:")
if value_pm == 'Q':
break
else:
value_pm=int (value_pm)
if 0<value_pm<=50:
print("空气质量状况:优")
elif 51<value_pm<=100:
print("空气质量状况:良")
elif 101<value_pm<=150:
print("空气质量状况:轻度污染")
elif 151<value_pm<=200:
print("空气质量状况:中度污染")
elif 201<value_pm<=300:
print("空气质量状况:重度污染")
else:
print("空气质量状况:严重污染")
6.猜大小小游戏
import random
sum = 0
count = 0
jindou=200
while True:
first_num = random.randint(1, 7)
second_num = random.randint(1, 7)
third_num = random.randint(1, 7)
if jindou>100:
user_guess = input("请输入你猜的结果,输入exit选择退出:")
if user_guess=='exit':
print('游戏结束')
break
if 3<first_num+second_num+third_num<=10 and user_guess=='小':
print('恭喜你猜中了,金豆加100')
jindou+=100
count+=1
sum +=1
elif 10<first_num+second_num+third_num<=18 and user_guess=='大':
print('恭喜你猜中了,金豆加100')
jindou+=100
count += 1
sum+=1
else:
print("没猜中,金豆减100")
jindou-=100
sum += 1
else:
print('金豆不足请充值!!')
break
win = '%.2f'%(count/sum)
a=win.split('.')
if a[0]=='1':
print(f"你一共猜了{sum}次,胜率是100%")
else:
print(f"你一共猜了{sum}次,胜率是{a[1]}%")
7.用python实现tree命令
import os
def getTree(path,n):
#将路径按照\\分割,并存放到lis列表中
lis = path.split("\\")
if n==1:
#得到路径里的最后一个文件名
print(lis[len(lis)-1] + '|--')
#判断这个路径是不是文件夹
if os.path.isdir(path):
#如果是文件夹,循环得到里面的文件
for i in os.listdir(path):
#输出缩进加上文件夹里面的文件
print("\t"*n + '|--'+i)
#判断当前路径加上文件夹里面的文件名是不是一个新的路径,如果是,就递归调用函数
if os.path.isdir(path+"\\"+i):
getTree(path+"\\"+i, n+1)
getTree('C:\\Users\\23314\\PycharmProjects\\day02\\每日一题',1)
8.ip存储与读取文件统计ip频率
功能:生成一个大文件ips.txt,要求1200行,每行随即为172.25.254.0/24段的ip;
读取ips.txt文件统计这个文件中ip出现频率前10的ip
#导入random函数,新建100个ip地址
import random
fp = open("ips.txt",'w+',encoding="utf-8")
for i in range(100):
num=random.randint(1,255)
fp.write(f'172.25.254.{num}\n')
#调整光标到第一个
fp.seek(0)
#新建一个字典用于存放ip地址和值
s = {}
# 循环判断是不是出现了,如果出现了,值加1,如果没出现,初始值赋为1
for i in fp.readlines():
# 更简便的判断,如果出现了,值加1,如果没出现,初始值赋为1,s[i]=s.get(i,0)+1
if i in s:
s[i] += 1
else:
s[i] = 1
#把他们的键和值都转换成列表保存
sort_li = list(s.items())
#sorted函数:一共可接受4个参数,含义分别如下:
# 1.可迭代类型,例如字典、列表、
# 2.比较函数
# 3.可迭代类型中某个属性,对给定元素的每一项进行排序
# 4.降序或升序
#使用了sorted函数,按value的值从小到大排序,按value的值从后往前取10个,最后一个是出现次数最多的ip地址
sort = sorted(sort_li,key=lambda x:x[1])[-10:]
#从后往前排序,第一个就是IP地址出现次数最多的ip
for i in sort[1::]:
print(i[0],end='')
fp.close()
9.统计文本Waldent(1).txt中每个词出现的频率,不统计标点符号,不区分大小写
# 以只读的方式打开瓦尔登湖文件
with open("Walden(1).txt",'r') as fp:
fp = fp.read()
#将文件中的大写字母转换成小写,不区分大小写
fp = fp.lower()
#循环去除文中的特殊字符,用空格代替
for ch in fp:
if ch in "!@#$%^&*(){}[]:;'/?.,<>":
fp = fp.replace(ch, ' ')
#通过空格来切割fp字符串,得到一个列表
fp = fp.split(" ")
#定义一个字典用于存放单词和出现的次数
count = {}
#循环fp列表,先判断是不是字母,如果是,判断是不是存在于字典中,存在则value值加1,不存在则value值定为1
for i in fp:
if i.isalpha():
if i in count:
count[i]+=1
else:
count[i]=1
else:
continue
print(count)
10.得到一个数为24,通过加减乘除
def get_24(lst):
num = 24-lst[-1]
if num==lst[1]*lst[0] or num==lst[1]+lst[0] or num==lst[1]-lst[0] or num==lst[1]/lst[0]:
return True
flag =24*lst[-1]
if flag==lst[1]*lst[0] or flag==lst[1]+lst[0] or flag==lst[1]-lst[0] or flag==lst[1]/lst[0]:
return True
count = 24+lst[-1]
if count==lst[1]*lst[0] or count==lst[1]+lst[0] or count==lst[1]-lst[0] or count==lst[1]/lst[0]:
return True
test = 24/lst[-1]
if test==lst[1]*lst[0] or test==lst[1]+lst[0] or test==lst[1]-lst[0] or test==lst[1]/lst[0]:
return True
else:
return False
print(get_24([1,1,24]))