【Python 35】19个 案例试题代码

目录

1. 向一个文件中写 “奋斗成就更好的你” 这句话。

2. 输出下面的结果有哪几种方式?(列表、字典、zip)

3. 输出下面待颜色的文字

4. height = 170,weight = 50.3,BMI = weight /(weight +height),其中 weight 保留两位小数

5. num = 10 ,输出 “10的二进制数为:0b1010” 的五种方式

6. num = 10 ,输出 其八进制、十六进制

7. 在程序不报错的情况下,输入一个整数,直到正确为止

8. 判断输入的内容是否都为数字

9. 随机生成10-50的一个数,猜这个数,直到猜对为止

10. 输出 a ~ z 对应的 ASCII 值

11. 用户名:admin ,密码:8888。输入密码次数:三次机会。

11. 计算 100 - 999 之间的水仙花数

12. 统计字符串中出现指定字符的次数

13. 判断三个参数能否形成一个三角形

14. 定义一个圆的类,计算圆的面积和周长

15. 定义一个学生的类,录入学生的信息,实现如下效果

16. 用 prettytable 实现如下效果

17. 推算几天后的日期

18. 记录登录日志


下面的案例学习过程:

① 看题目

② 自己敲一遍

③ 看答案对一遍

1. 向一个文件中写 “奋斗成就更好的你” 这句话。

# 作者:要努力,努力,再努力
# 开发时间:2022/4/26 21:48

# 第一种方式,使用print方式:
fp = open('test.txt','w',encoding='utf-8')
print('奋斗成就更好的你',file=fp)
fp.close()
# 第二种方式,使用文件读写方式:
# with open('test.txt', 'w', encoding='utf-8') as wfile:
#     wfile.write('奋斗成就更好的你')

2. 输出下面的结果有哪几种方式?(列表、字典、zip)

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 14:06

# 列表
lst_name = ['王五', '李四', '张三']
lst_seg = ['1', '2', '3']
for i in range(3):
    print(lst_seg[i], '\t', lst_name[i])

# 字典
d = {'1': '王五', '2': '李四', '3': '张三'}
for key in d:
    print(key, '\t', d[key])

# zip
for s, name in zip(lst_seg, lst_name):
    print(s, '\t', name)

3. 输出下面待颜色的文字

# 033 是颜色设置
# [0;35m 是紫粉色
print('\033[0;35m图书\033[m', '\033[0;32m管理\033[m', '\033[0;34m系统\033[m')

4. height = 170,weight = 50.3,BMI = weight /(weight +height),其中 weight 保留两位小数

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 14:35
height = 170
weight = 50.3
BMI = weight/(height + weight)
print('身高:', height)
print('体重:', weight)
print('BMI:', '{:0.2f}'.format(BMI))

5. num = 10 ,输出 “10的二进制数为:0b1010” 的五种方式

 个数可变、+号连接、%s、{0}{1}、{num}

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 14:43

# 十进制转二进制
num = 10
print(num, '的二进制数为:', bin(num))
print(str(num) + '的二进制数为:' + bin(num))
print('%s的二进制数为:%s' % (num, bin(num)))
print('{0}的二进制数为:{1}'.format(num, bin(num)))
print(f'{num}的二进制数为:{bin(num)}')

6. num = 10 ,输出 其八进制、十六进制

print(f'{num}的八进制为{oct(num)}')
print(f'{num}的十六进制为{hex(num)}')

7. 在程序不报错的情况下,输入一个整数,直到正确为止

while True:
    try:
        num = int(input('输入一个整数'))
        break
    except:
        print('输入不正确,请重新输入')
        continue

8. 判断输入的内容是否都为数字

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 15:36

num = input('输入内容')
if num.isdigit():
    print('都为数字')
else:
    print('不都为数字')
print('都为数字' if num.isdigit() else '不都为数字')

9. 随机生成10-50的一个数,猜这个数,直到猜对为止

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 17:12

import random
num = random.randint(10, 50)
while True:
    guess = int(input('猜这个数:'))
    if guess > num:
        print('大了')
        continue
    elif guess < num:
        print('小了')
        continue
    else:
        print('猜对了')
        break

10. 输出 a ~ z 对应的 ASCII 值

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 17:23

alpha = 97
for i in range(1, 27):
    print(chr(alpha), '\t', alpha)
    alpha += 1

11. 用户名:admin ,密码:8888。输入密码次数:三次机会。

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 17:28

for i in range(1, 4):
    admin = input('输入用户名')
    pwd = input('输入密码')
    if admin == 'admin' and pwd == '8888':
        print('输入成功!')
        break
    else:
        print(f'用户名和密码不成功,您还有{3-i}次机会')
else:
    print('用户名和密码输入都不正确')

11. 计算 100 - 999 之间的水仙花数

# 作者:要努力,努力,再努力
# 开发时间:2022/4/27 20:12

import math

for i in range(100, 1000):
    a = i % 10  # 个位
    b = i // 10 % 10  # 十位
    c = i // 10 // 10  # 百位
    if math.pow(a, 3) + math.pow(b, 3) + math.pow(c, 3) == i:
        print(f'{i}为水仙花数')

12. 统计字符串中出现指定字符的次数

s = 'hellopython,hellojava,hellogo'

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 14:38

def 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 = 'hellopython,hellojava,hellogo'
    ch = input('请输入一个字符')
    num = count(s, ch)
    print(f'出现次数为{num}')

13. 判断三个参数能否形成一个三角形

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 15:00


def is_tiangle(a, b, c):
    if a.isdigit() and b.isdigit() and c.isdigit():
            list = [a, b, c]
            list.sort()
            print(list)
            if int(list[0]) + int(list[1]) > int(list[2]) and int(list[2]) - int(list[0]) < int(list[1]):
                return '构成三角形'
            else:
                return '不能构成三角形'
    else:
        return '输入数据错误'


if __name__ == "__main__":
    try:
        a = input('输入第一条边')
        b = input('输入第二条边')
        c = input('输入第三条边')
        result = is_tiangle(a, b, c)
        print(f'{a},{b},{c}' + result)
    except Exception as e:
        print(e)

14. 定义一个圆的类,计算圆的面积和周长

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 15:21

import math


class Circle():

    def __init__(self,r):
        self.r = r

    def getArea(self):
        area = math.pi * math.pow(self.r, 2)
        return math.pi * math.pow(self.r, 2)

    def getPerimeter(self):
        return 2 * math.pi * self.r


if __name__ == '__main__':
    try:
        r = int(input('输入圆的半径:'))
    except:
        print('输入的半径不是整数类型')
    c = Circle(r)
    print(f'圆的周长为{c.getPerimeter()}')
    print(f'圆的面积为{c.getArea()}')
    print('圆的周长为{:.2f}'.format(c.getPerimeter()))
    print('圆的面积为{:.2f}'.format(c.getArea()))

15. 定义一个学生的类,录入学生的信息,实现如下效果

 实现代码:

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 15:53

class Student():

    def __init__(self, name, age, gender, 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__':
    lst = []
    for i in range(0, 3):
        s = input('输入学生信息: (用#分割)')
        s_lst = s.split('#')
        stu = Student(s_lst[0], s_lst[1], s_lst[2], s_lst[3])
        lst.append(stu)

    for item in lst:
        item.show()

16. 用 prettytable 实现如下效果

首先:

 代码:

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 16:39

import prettytable as pt


# 显示座位
def show_ticket(row_num):
    tb = pt.PrettyTable()
    tb.field_names = ['行号', '座位1', '座位2']
    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']
    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(13)
    choose_num = input('请输入选择的座位:(13,5)')
    try:
        row,column = choose_num.split(',')
    except:
        print('输入数据有误')
    order_ticket(row_num,row,column)

17. 推算几天后的日期

实现效果:

代码:

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 17:21

import datetime


def inputdate():
    indate = input('请输入开始日期:(20220428)')
    indate.strip()  # 去除空格
    datestr = indate[0:4] + '-' + indate[4:6] + '-' + indate[6:8]  # 切片操作
    return datetime.datetime.strptime(datestr, '%Y-%m-%d')


if __name__ == '__main__':
    print('---------------------------------推算几天后的日期-------------------------')
    sdate = inputdate()
    date_num = int(input('请输入需要间隔的天数'))
    fdate = sdate + datetime.timedelta(days=date_num)
    print('推算的日期是' + str(fdate))

18. 记录登录日志

实现效果目标:

代码: 

# 作者:要努力,努力,再努力
# 开发时间:2022/4/28 21:11
import time


def show_info():
    print('0. 退出 1. 查看登录日志')


# 记录日志
def write_logininfo(username):
    with open('log.txt', 'a', encoding='utf-8') as afile:
        s = f'用户名{username}, 登录时间:{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))}'
        afile.write(s + '\n')


# 读取日志
def read_logininfo():
    with open('log.txt', 'r', encoding='utf-8') as rfile:
        while True:
            line = rfile.readline()
            if line == '':
                break
            else:
                print(line, end='')


if __name__ == "__main__":
    username = input('用户名:')
    password = input('密码')
    if username == 'admin' and password == 'admin':
        print('登录成功')
        write_logininfo(username)
        show_info()
        while True:
            num = int(input('输入数字:'))
            if num == 0:
                print('退出成功')
                break
            elif num == 1:
                print('查看日志')
                read_logininfo()
                show_info()
                continue
            else:
                print('输入数字有误')
                show_info()
                continue
    else:
        print('用户名密码不正确')

Python基础类所有代码:

ECCUSXR/PythonFundamentalicon-default.png?t=M3K6https://gitee.com/shuangshuang853/python-fundamental.git 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不菜不菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值