目录
4. height = 170,weight = 50.3,BMI = weight /(weight +height),其中 weight 保留两位小数
5. num = 10 ,输出 “10的二进制数为:0b1010” 的五种方式
11. 用户名:admin ,密码:8888。输入密码次数:三次机会。
下面的案例学习过程:
① 看题目
② 自己敲一遍
③ 看答案对一遍
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/PythonFundamentalhttps://gitee.com/shuangshuang853/python-fundamental.git