一、向文件中输入“奋斗成就更好的你”
#方式一:使用print方式进行输出(输出目的地是文件)
fp=open('e:/test.txt','w')
print('奋斗成就更好的你',file=fp)
fp.close()
#方式二:使用文件读写操作
with open('e:/test.txt','w') as wfile:
wfile.write('奋斗成就更好的你')
二、输出北京的天气预报
print('星期日','今天')
print('---------------------------------')
print('08时','11时','14时','17时','20时','23时')
print('0℃ ','3℃ ','5℃ ','2℃ ','3℃ ','7℃')
print('---------------------------------')
print('明 天','2/23','2℃/11℃')
print('星期一','2/24','2℃/14℃')
print('星期二','2/25','3℃/10℃')
print('星期三','2/26','4℃/14℃')
print('星期四','2/27','3℃/15℃')
print('星期五','2/28','1℃/10℃')
print('星期六','2/29','5℃/15℃')
三、机票购买界面
print('✈国内\t☪国际、港澳台\t↘发现低价')
print('--------------------------------------')
print('航班类型:⊙单程 ⊙往返 ⊙多程(含缺口城)')
print('出发城市:北京')
print('到达城市:长春')
print('出发日期:2020-8-10')
print('返回日期:yyyy-MM-dd')
print('----------------------------------------')
print(' □带儿童 □带婴儿')
print(' ___________')
print(' |___搜索___|')
四、输出杨老师出版的图书信息
book_name='Java程序设计教程'
public="西安电子科技大学出版社"
pub_date='2019-02-02'
price="56.8"
print('▸→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→◂')
print(f'▹ 《{book_name}》 ◃')
print(f'▸ 出 版 社:{public} ◂')
print(f'▹ 出版时间:{pub_date} ◃')
print(f'▸ 定 价:{price} ◂')
print('▹→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→◃')
五、输出《红楼梦》中的金陵十二钗前五位
#列表
lst_name=['林黛玉','薛宝钗','贾元春','贾探春','史湘云']
lst_sig=['❶','❷','❸','❹','❺']
for item in range(5):
print(lst_sig[item],lst_name[item])
#字典
d={'❶':'林黛玉','❷':'薛宝钗','❸':'贾元春','❹':'贾探春','❺':'史湘云'}
for key in d:
print(key,d[key])
#Zip
for s,name in zip(lst_sig,lst_name):
print(s,name)
六、输出图书音像勋章
print('\033[0;35m 图书音像勋章\033[m')
print('\033[0;35m-----------------------\033[m')
print('\033[0;35m❀图书音像勋章 ✪专项活动\033[m')
print('\033[0;35m♥专属优惠 ☏优惠提醒\033[m')
七、输出你的身体指标
height=170
weight=50.5
bmi=weight/height+weight
print('您的身高是:',height)
print('您的体重是:'+str(weight))
print('您的BMI指数是:'+'{:0.2f}'.format(bmi))
八、将指定的十进制数转成二进制、八进制、十六进制
def fun():
num=int(input('请输入一个十进制的整数:'))
print(num,'的二进制数为:',bin(num))#第一种写法,使用了个数可变的位置参数
print(str(num)+'的二进制数为:'+bin(num))#第二种写法,使用‘+’作为连接符(+左右均为str类型)
print('%s的二进制数为:%s'%(num,bin(num)))#第三种写法,str格式化字符串
print('{0}的二进制数为:{1}'.format(num,bin(num)))#第四种写法,str格式化字符串
print(f'{num}的二进制数为:{bin(num)}')#第五种写法,格式化字符串
print(f'{num}的八进制数为:{oct(num)}')
print(f'{num}的十六进制数为:{hex(num)}')
if __name__=='__main__':
while True:
try:
fun()
break
except:
print('只能输入整数!')
fun()
九、为自己手机充值
print('用户手机郑虎原有话费余额为:\033[0;35m8元\033[m')
money=int(input('请输入用户充值金额:'))
money+=money
print('当前余额为:\033[0;35m',money,'元\033[m')
十、计算能量消耗
num=int(input('请输入您当天行走的步数:'))
calorie=num*28
print(f'今天共消耗了卡路里{calorie},即{calorie/1000}千卡')
十一、预测未来子女的身高
father_height=float(input('请输入父亲的身高:'))
mother_height=float(input('请输入母亲的身高:'))
son_height=(father_height+mother_height)*0.54
print('预测子女的身高为:{0}cm'.format(son_height))
十二、支付密码的验证
#方法一
pwd=input('支付宝支付密码:')
if pwd.isdigit():
print('支付数据合法')
else:
print('支付数据不合法,支付密码只能是数字')
#方法二
print('支付数据合法' if pwd.isdigit() else '支付数据不合法,支付密码只能是数字')
十三、模拟QQ账号登录
qq=input('请输入QQ号:')
pwd=input('请输入密码:')
if qq=='29667832' and pwd=='111111':
print('登录成功')
else:
print('对不起,账号或密码不正确')
十四、商品价格大竞猜
import random
price=random.random(1000,1500)
print('今天竞猜的商品为小米扫地机器人,价格在【1000-1500】之间')
guess=int(input())
if guess>price:
print('大了')
elif guess<price:
print('小了')
else:
print('猜对了')
print('真实价格为:',price)
十五、根据性质查看运势:用字典
十六、循环输出26个英文字母对应的ASCII码值
#方式一
x=97
for _ in range(1,27):
print(chr(x),'-->',x)
x+=1
#方式二
x=97
while x<=122:
print(chr(x),'-->',x)
x+=1
十七、模拟用户登录
for i in range(1,4):
qq=input('请输入用户名:')
pwd=input('请输入密码:')
if qq=='admin'and pwd=='111111':
print('登录成功!')
break
else:
print('用户名或者密码不正确')
if i<3:
print(f'您还有{3-1}次机会')
else:
print('您没有机会了!!!')
十八、猜数游戏
import random
rand=random.random(1,100)
for i in range(1,11):
num=int(input('在我心中有个数1-100,请您猜一猜'))
if num<rand:
print('小了')
elif num>rand:
print('大了')
else:
print('恭喜您猜对了')
break
print(f'您一共猜了{i}次')
if i<3:
print('真聪明')
elif i<=7:
print('还行')
else:
print('学习折半算法吧')
十九、计算100-999之间的水仙花数
import math
for i in range(100,999):
if math.pow((i%10),3)+math.pow((i//10%10),3)+math.pow((i//100),3)==i:
print(i)
二十、‘千年虫’我来了
year=[82,84,83,0,99]
print('原列表:',year)
for index,value in enumerate(value):
if str(value)!='0':
year[index]=int('19'+str(value))
else:
year[index]=int('200'+str(value))
print('修改之后的列表:',year)
year.sort()
print('排序之后的列表:',year)
二十一、京东购物流程
lst=[]
for i in range(0.5):
goods=input('请输入商品编号和商品名称进入商品的入库,每次只能输入一件商品:\n')
lst.append(goods)
for item in lst:
print(item)
cart=[]
while True:
num=input('请输入要购买的商品编号:')
for item in lst:
if item.find(num)!=-1:
cart.append(item)
break
if num=='q':
break
print('您购物车已将购买的商品为:')
for i in range(len(cart)-1,-1,-1):
print(i)
二十二、根据星座测试性格特点
constellation=['白羊座','金牛座','双子座','巨蟹座']
nature=['积极乐观','估值内向','圆滑世故','多愁善感']
d=dict(zip(constellation,nature))
key=input('请输入星座名称:')
flag=True
for item in d:
if key==item:
flag=True
print(key,'的性格特点是:',d.get(key))
break
else:
flag=False
if not flag:
print('对不起,您输入的星座有误')
二十三、模拟12306火车票订票下单
dict_ticket={'G1569':['北京南-天津南','18:05','18:39','00:34'],
'G1567':['北京南-天津南','18:15','18:49','00:34']}
print('车次\t\t出发站-到达站\t\t出发时间\t\t\t到达时间\t\t\t历时时长')
for item in dict_ticket:
print(item,end=' ')
for i in dict_ticket[item]:
print(i,end='\t\t\t')
print()
train_no=input('请输入要购买的车次:')
person=input('请输入乘车人,如果多人请使用逗号分隔')
s=f'您已购买了{train_no}次列车'
s_info=dict_ticket[train_no]
s+=s_info[0]+' '+s_info[1]+' 开'
print(f'{s}请{person}金肯取走纸质车票。【铁路客服】')
二十四、我的咖啡馆你做主
coffee_name=('蓝山','卡布奇诺','拿铁','皇家咖啡')
print('您好,欢迎光临小喵咖啡屋')
print('本店经营的咖啡有:')
for index,item in enumerate(coffee_name):
print(index=1,'.',item,end=' ')
index=int(input('\n请输入您喜欢的咖啡号:'))
if 0<=index<=len(coffee_name):
print(f'您的咖啡[{coffee_name[item]}]好了,请您慢用')
二十五、显示2019中超联赛前5名排名
scores=(('广州恒大',72),('北京固安',70),('上海上港',66),('江苏苏宁',53),('山东鲁能',51))
for index,item in enumerate(scores):
print(index=1,'.',end=' ')
for score in item:
print(score,end=' ')
print()
二十六、模拟手机通讯录
phones=()
for i in range(5):
info=input(f'请输入第{i+1}个朋友的姓名和手机号:')
phones.add(info)
for item in phones:
print(item)
二十七、统计字符串中出现指定字符的次数
def get_count(s,ch):
count=0
for item in s:
if ch.upper()==item or ch.lower()==s:
count+=1
return count
if __name__=='__main__':
s='hellopython,hellojava,hellogo'
ch=input('请输入要统计的字符:')
count=get_count(s,ch)
print(f'在{s}中,{ch}出现了{count}次')
二十八、格式化输出商品的名称和单价
lst=[['01','电风扇','美的',500],
['02','洗衣机','TCL',1000],
['03','微波炉','老板',400]]
print('编号\t\t名称\t\t\t品牌\t\t单价')
for item in lst:
for i in item:
print(i,end='\t')
print()
print('编号\t\t\t名称\t\t\t品牌\t\t单价')
for item in lst:
item[0]='000'+item[0]
item[3]='¥{:.2f}'.format(item[3])
for item in lst:
for i in item:
print(i,end='\t\t')
print()
二十九、mini计算器
def calc(a,b,op):
if op=='+':
return add(a,b)
elif op=='-':
return sub(a,b)
elif op=='*':
return mul(a,b)
elif op=='/':
if b!=0:
return div(a,b)
else:
return '除数不能为0'
def div(a,b):
return a/b
def mul(a,b):
return a*b
def add(a,b):
return a+b
def sub(a,b):
return a-b
if __name__=='__main__':
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
op=input('请输入运算符:')
print(calc(a,b,op))
三十、猜数游戏
import random
def guess(num,guess_num):
if num==guess_num:
return 0
elif num<guess_num:
return 1
else:
return -1
num=random.random(1,100)
for i in range(10):
gusses_num=int(input('我心中的有一个1-100的整数,请你猜一猜:'))
result=guess(num,guess_num)
if result==0:
print('相等')
break
elif result==1:
print('大了')
else:
print('小了')
else:
print('真笨,10次都没猜对')
三十一、编写程序输入学员成绩
sorce=int(input('请输入分数:'))
if 0<=sorce<=100:
print('分数为:',sorce)
else:
raise Exception('分数不正确')#手动抛出异常
except Exception as e:
print(e)
三十二、编写程序,判断三个参数是否构成三角形
def is_triangle(a,b,c):
if a<0 and b<0 and c<0:
raise Exception('三条边不能是负数')
if a+b>c and b+c>a and a+c>b:
print(f'三角形的边长为a={a},b={b},c={c}')
else:
raise Exception(f'a={a},b={b},c={c}不能构成三角形')
if __name__=='__main__':
try:
a=int(input('请输入第一条边:'))
b=int(input('请输入第二条边:'))
c=int(input('请输入第三条边:'))
is_triangle(a,b,c)
except Exception as e:
print(e)
三十三、计算圆的面积和周长
import math
class Circle(object):
def __init__(self,r):
self.r=r
def get_area(self):
return math.pi*math.pow(self.r,2)
def get_perimeter(self):
return math.pi*2*self.r
if __name__=='__main__':
r=int(input('请输入圆的半径:'))
c=Circle(r)
print(f'圆的面积为:{c.get_area()}')
print(f'圆的周长为:{c.get_perimeter()}')
print(f'圆的面积为:{:.2f}.format(c.get_area())')
print(f'圆的周长为:{:.2f}.format(c.get_perimeter())')
三十四、定义学生类录入5个学生信息存储在列表中
class Student(object):
def __init__(self,stu_name,stu_age,stu_gender,stu_score):
self.name=name
self.age=age
self.gender=gender
self.score=score
def show(self):
print(self_name,self_age,self_gender,self_score)
if __name__=='__main__':
print('请输入五个学生信息:(姓名#年龄#性别#分数)')
for i in range(5):
s=input(f'请输入第{i+1}个学员的信息:')
s_lst=s.split('#')
stu=Student(s_lst[0],s_lst[1],s_lst[2],float(s_lst[3]))
lst.append(stu)
for item in lst:
item.show()
三十五、编写程序实现不同乐器发出不同声音
class Instrumnet():
def make_sound(self):
pass
class Erhu(Instrumnet):
def make_sound(self):
print('二胡在演奏')
class Pinao(Instrumnet):
def make_sound(self):
print('钢琴在演奏')
class Violin(Instrumnet):
def make_sount(self):
print('小提琴在演奏')
class Bird():
def make_sound(self):
print('小鸟在唱歌')
def play(instrumnet):
instrumnet.make_sound()
if __name__=='__main__':
play(Erhu())
play(Pinao())
play(Violin())
play(Bird())
三十六、面试出租车和家用轿车的信息
class Car(object):
def __init__(self,type,no):
self.type=type
self.no=no
def start(self):
pass
def stop(self):
pass
class Taxi(Car):
def __init__(self,type,no,company):
super().__init__()
self.company=company
def start(self):
print(f'乘客您好')
print(f'我是{self.company}出租车公司的,车牌是{self.no},请问您去哪里?')
def stop(self):
print('目的地到了,请您付款下次')
class FamilyCar(Car):
def __init__(self,type,no,name):
super().__init__()
selt.name=name
def start(self):
print(f'我的名字是{self.name},这个车是自己的')
def stop(self):
print('目的地到了,我们去玩吧')
if __name__=='__main__':
taxi=Taxi('上海大众','京A9765','长城')
taxi.start()
taxi.stop
print('-'*30)
familycar=FamilyCar('广汽丰田','京B8888','武大郎')
familycar.start()
familycar.stop()
三十七、模拟高铁售票系统
import prettytable as pt
def show_ticket(row_num):
tb=pt.PrettyTable()
tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']
for i in range(row_num):
lst=[f'第{i+1}行','有票','有票','有票','有票','有票']
tb.add_row(lst)
print(tb)
#订票
def order_ticket(row_num,column):
tb=pt.PrettyTable()
tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']
for i in range(row_num):
if int(row_num)==(i+1):
lst=[f'第{i+1}行','有票','有票','有票','有票','有票']
lst[int(column)]='已售'
tb.add_row(lst)
else:
lst=[f'第{i+1}行','有票','有票','有票','有票','有票']
tb.add_row(lst)
print(tb)
if __name__=='__main__':
row_num=13
show_ticker(row_num)
choose_num=input('请输入选择的座位,如13,5表示13行5号')
try:
row,column=choose_num.split(',')
except:
print('输入格式有误')
order_ticket(row,column)
三十八、推算几天后的日期
import datetime
def inputdate():
indate=input('输入开始日期:(20200808)后按回车:')
indate=indate.strip()
datestr=indate[0:4]+'-'+indate[4,6]+'-'+indate[6,]
return datetime.datename.strptime(datetime,'%Y-%m-%d')
if __name__=='__main__':
sdate=inputdate()
in_num=int(input('请输入间隔的天数:'))
fdate=sdate+datetime.timedelta(days+in_num)
print('您推算的日期是:'+str(fdate).split(' ')[0])
三十九、记录用户登录日志
import time
def show_info():
print('输入提示数字,执行相应操作:0.退出 1.查看登录日志')
#记录日志
def write_logininfo(username):
with open('log.txt','a') as wfile:
s=f'用户名{username},登录时间{time.strftime("%Y-%m-%d %H:%M:$S",time.localtime(time.time()))},'
wfile.write(s)
wfile.write('\n')
def read_loginingo():
with open('log.txt','r') as rfile:
while True:
line=rfile.readlines()
if line=='':
break
else:
print(line,end='')
if __name__=='__main__':
username=input('请输入用户名:')
pwd=input('请输入密码:')
if username=='admin' and pwd=='admin':
print('登录成功')
write_logininfo(username)
show_info()
num=int(input('请输入操作数:'))
while True:
if num==0:
print('退出成功')
break
elif num==1:
print('查看登录日志')
read_logininfo()
num=int(input('请输入操作数:'))
else:
print('输入数字有误,重新输入')
else:
print('对不起,用户名和密码不正确')
四十、模拟淘宝客服自动回复
def find_answer(question):
with open('reply.txt','r',encoding='utf-8') as file:
while True:
line=file.readline()
if not line:
break
keyword=line.split('|')[0]
reply=line.split('|')[1]
if keyword in question:
return reply
return False
if __name__=='__main__':
question=input('说问题:')
while True:
if question=='bye':
break
replay=find_answer(question)
if not replay:
question=input('您说一下其他问题,退出输入bye')
else:
print(replay)
question=input('您是否还有其他问题,退出输入bye')
print('再见')
本文章为观看哔哩哔哩视频练习所记:https://www.bilibili.com/video/BV1wD4y1o7AS