我的咖啡你做主
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[index-1]}]好了,请您慢用')
显示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=set()
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()==item:
count+=1
return count
if __name__ == '__main__':
s='helloworld,hellojava,hellopython'
ch=input('请输入要统计的字符:')
count=get_count(s,ch)
print(f'{ch}在{s}中出现的次数为:{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\t')
print()
print('============================')
print('编号\t\t\t名称\t\t\t品牌\t\t单价')
for item in lst:
item[0]='0000'+item[0]
item[3]='¥{:.2f}'.format(item[3])
for item in lst:
for i in item:
print(i,end='\t\t')
print()
函数封装:
def show(lst):
for item in lst:
for i in item:
print(i, end='\t\t')
print()
lst=[['01','电风扇','美的',500],
['02','洗衣机','TCL',1000],
['03','微波炉','老板',400]]
print('编号\t\t名称\t\t\t品牌\t\t单价')
show(lst)
print('============================')
print('编号\t\t\t名称\t\t\t品牌\t\t单价')
for item in lst:
item[0]='0000'+item[0]
item[3]='¥{:.2f}'.format(item[3])
show(lst)
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 add(a,b):
return a+b
def sub(a,b):
return a-b
def mul(a,b):
return a*b
def div(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 guess_num>num:
return 1
elif guess_num<num:
return -1
num=random.randint(1,100)
for i in range(10):
guess_num=int(input('我心里有个[1-100]的整数请你猜一猜:'))
result=guess(num,guess_num)
if result==0:
print('猜中了')
break
elif result==1:
print('猜大了')
elif result==-1:
print('猜小了')
else:
print('真笨啊,十次都没猜中')
编写程序输入学员成绩:
try:
score = int(input('请输入分数:'))
if 0 <= score <= 100:
print('分数为:', score)
else:
raise Exception('分数不正确')
except Exception as e:
print(e)
三条边能不能构成三角形
def is_triangle(a,b,c):
if a<0 or b<0 or 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 2*math.pi*self.r
if __name__ == '__main__':
r=int(input('请输入圆的半径:'))
c=Circle(r)
print(f'圆的面积为:{c.get_area()},圆的周长为:{c.get_perimeter()}')
print('圆的面积为:{:.2f}'.format(c.get_area()))
print('圆的周长为:{:.2f}'.format(c.get_perimeter()))
定义学生类录入5个学生信息存储到列表中:
class Student(object):
def __init__(self,stu_name,stu_age,stu_gender,stu_score):
self.stu_name=stu_name
self.stu_age=stu_age
self.stu_gender=stu_gender
self.stu_score=stu_score
def show(self):
print(self.stu_name,self.stu_age,self.stu_gender,self.stu_score)
if __name__ == '__main__':
print('请输入五位学员的信息:(姓名#年龄#性别#成绩)')
lst=[]
for i in range(0,5):
s=input(f'请输入第{i+1}位学员的信息和成绩:')
s_lst=s.split('#')
stu=Student(s_lst[0],int(s_lst[1]),s_lst[2],float(s_lst[3]))
lst.append(stu)
#遍历列表
for item in lst:
item.show()
编写程序实现乐手弹奏乐器,乐手可以弹奏不同的乐器从而发生不同的声音,可以弹奏的乐器包括二胡、钢琴和琵琶
class Instrument():
def make_sound(self):
pass
class Erhu(Instrument):
def make_sound(self):
print('二胡在演奏')
class Piano(Instrument):
def make_sound(self):
print('钢琴在演奏')
class Violin(Instrument):
def make_sound(self):
print('小提琴在演奏')
class Bird():
def make_sound(self):
print('小鸟在唱歌')
#演奏的函数
def play(instrument):
instrument.make_sound()
if __name__ == '__main__':
play(Erhu())
play(Piano())
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__(type,no)
self.company=company
def start(self):
print(f'乘客您好,我是{self.company}出租车公司的,我的车牌是{self.no},请问您要去哪里?')
def stop(self):
print('目的地到了,请您付款下车,欢迎再次乘坐')
class FamilyCar(Car):
def __init__(self,type,no,name):
super().__init__(type,no)
self.name=name
def stop(self):
print('目的地到了,我们去玩儿吧')
def start(self):
print(f'我是{self.name},我的汽车我做主')
if __name__ == '__main__':
taxi=Taxi('上海大众','京A9765','长城')
taxi.start()
taxi.stop()
print('_'*30)
familycar=FamilyCar('广汽丰田','京B88888','武大郎')
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,row,column):
tb=pt.PrettyTable()
tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']
for i in range(row_num):
if int(row)==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_ticket(row_num)
choose_num=input('请输入选择的座位,如13,5表示13排5号座位')
try:
row,column=choose_num.split(',')
except:
print('输入格式有误,如13排5号座位,应该输入13,5')
order_ticket(row_num,row,column)
推算几天后的日期
import datetime
def inputdate():
indate=input('请输入开始日期:(20200808)后按回车')
index=indate.strip()
datestr=indate[0:4]+'-'+indate[4:6]+'-'+indate[6:]
return datetime.datetime.strptime(datestr,'%Y-%m-%d')
if __name__ == '__main__':
print('-------------------推算几天后的日期---------------------')
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 file:
s=f'用户名{username},登录时间:{time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))}'
if __name__ == '__main__':
print(time.time())
print(time.localtime(time.time()))
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
import time
def show_info():
print('输入提示数字,执行相应操作:0、退出 1、查看登录日志')
#记录日志
def write_logininfo(username):
with open('log.txt','a')as file:
s=f'用户名{username},登录时间:{time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))}'
#读取日志
def read_logininfo():
with open('log.txt','r')as file:
while True:
line=file.readlines()
if line=='':
break
else:
print(line)
if __name__ == '__main__':
username=input('请输入用户名:')
pwd=input('请输入密码:')
if 'admin'==username and 'admin'==pwd:
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('您输入的数字有误!!!!!')
show_info()
num=int(input('输入操作数字:'))
else:
print('对不起,用户名或密码不正确!!!!')
print(time.time())
print(time.localtime(time.time()))
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
模拟淘宝客服自动回复
def find_answer(question):
with open('replay.txt','r',encoding='gbk') as file:
while True:
line=file.readline()
if not line: #if line==''到文件末尾退出
break
keyword=line.split('|')[0]
reply=line.split('|')[1]
if keyword in question:
return reply
return False
if __name__ == '__main__':
question=input('Hi,您好,小蜜在此等主人很久了,有什么烦恼快和小蜜说吧')
while True:
if question=='bye':
break
reply=find_answer(question)
if not reply:
question=input('小蜜不知道您在说什么,您可以问一些关于订单、物流、账户、支付等问题(退出请输入bye)')
else:
print(reply)
question=input('小主,您还可以继续问一些关于订单、物流、账户、支付等问题(退出请输bye)')
print('小主再见')
爬虫基础
遵循robots协议