0
点赞
收藏
分享

微信扫一扫

学习Day06

刘员外__ 2022-04-03 阅读 40
python

我的咖啡你做主

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协议

爬虫的分类

在这里插入图片描述

爬虫的原理

在这里插入图片描述

举报

相关推荐

Java学习day06

Day06

java学习笔记day06

Day06 方法

day06 笔记

Day06作业

Python入门学习——DAY06(下)

0 条评论