Python练习

一、向文件中输入“奋斗成就更好的你”

#方式一:使用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

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值