实验1 Python开发环境使用和编程初体验
实验任务1
1.print输出的几种用法
# 用法1:用于输出单个字符串或单个变量
print('hey, u')
# 用法2: 用于输出多个数据项,用逗号分隔
print('hey', ' u')
x,y,z = 1,2,3
print(x, y, z)
# 用法3: 用户混合字符串和变量值
print('x = %d, y = %d, z = %d' %(x,y,z)) # 方式1: 传统c风格
print('x = {}, y = {}, z = {}'.format(x,y,z)) # 方式2: s.format()方法
print(f'x = {x}, y = {y}, z = {z}') # 方式3: f-string方式
# 其它: 输出后是否换行
print(x) # 默认输出后换一行
print(y)
print(z)
print(x, end=' ') # 输出结束后,不换行;通过end指定数据项之间的分隔符
print(y, end=' ')
print(z)
# 用法1:用于输出单个字符串或单个变量
print('hey, u')
# 用法2: 用于输出多个数据项,用逗号分隔
print('hey', ' u')
x,y,z = 1,2,3
print(x, y, z)
# 用法3: 用户混合字符串和变量值
print('x = %d, y = %d, z = %d' %(x,y,z)) # 方式1: 传统c风格
print('x = {}, y = {}, z = {}'.format(x,y,z)) # 方式2: s.format()方法
print(f'x = {x}, y = {y}, z = {z}') # 方式3: f-string方式
# 其它: 输出后是否换行
print(x) # 默认输出后换一行
print(y)
print(z)
print(x, end=' ') # 输出结束后,不换行;通过end指定数据项之间的分隔符
print(y, end=' ')
print(z)
运行截图:
2.使用字符串的format()方法,对输出数据项进行格式化
x1, y1 = 1.2, 3.57
x2, y2 = 2.26, 8.7
# 输出1
print('{:-^40}'.format('输出1')) # {:-^40}控制输出数据格式: 宽度占40列,居中对齐,空白处用-补齐
print('x1 = {}, y1 = {}'.format(x1, y1))
print('x2 = {}, y2 = {}'.format(x2, y2))
# 输出2
print('{:-^40}'.format('输出2')) # {:-^40}控制输出数据格式: 宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:.1f}, y1 = {:.1f}'.format(x1, y1)) # {:.1f}控制小数输出精度,保留1位小数
print('x2 = {:.1f}, y2 = {:.1f}'.format(x2, y2))
# 输出3
print('{:-^40}'.format('输出3')) # {:-^40} 控制输出数据格式: 宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1, y1)) # {:<15.1f}控制数据输出宽度占15列,小数部分占1列,左对齐,空白处默认补空格
print('x2 = {:<15.1f}, y2 = {:<15.1f}'.format(x2, y2))
# 输出4
print('{:-^40}'.format('输出4')) # {:-^40} 控制输出数据格式: 宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:>15.1f}, y1 = {:>15.1f}'.format(x1, y1)) # {:>15.1f}控制数据输出宽度占15列,小数部分占1列,右对齐,空白处默认补空格
print('x2 = {:>15.1f}, y2 = {:>15.1f}'.format(x2, y2))
运行截图:
3.使用f-string方式输出数据并控制格式
name1, age1 = 'Bill', 19
name2, age2 = 'Hellen', 18
title = 'Personnel Information'
print(f'{title:=^40}') # 输出title的值,=^40指定输出宽度占40列,居中对齐,用=填充空白
print(f'name: {name1:10} age: {age1:3}') # 10和3分别指定数据项输出宽度
print(f'name: {name2:10} age: {age2:3}')
print(40*'=')
运行截图:
实验任务2
1.内置函数eval()
功能:把字符串转换为python表达式
理解:相当于把圆括号中的内容,两侧引号去掉
r1 = eval('1 + 2') # 相当于r1 = 1 + 2
print(type(r1), r1)
r2 = eval('1+2j') #相当于r2 = 1+2j
print(type(r2), r2)
r3 = eval('"python"') # 相当于r3 = "python"
print(type(r3), r3)
r4 = eval('7, 42') # 相当于r4 = 7, 42
print(type(r4), r4)
运行截图:
2.组合使用内置函数eval()和input()
x, y = eval(input('Enter two oprands: ')) # 输入的两个操作数之间用逗号分隔(英文半角输入法下的逗号)
ans = x + y
print(f'{x} + {y} = {ans}')
print(f'{type(x)} + {type(y)} = {type(ans)}')
运行截图:
总结:eval()函数可以自动将字符串对象转换为相应的形式,如整型、浮点型、列表等等。
实验任务3
浮点数简单运算
ans1 = 0.1 + 0.2
print(f'0.1 + 0.2 = {ans1}')
import decimal
ans2 = decimal.Decimal('0.1') + decimal.Decimal('0.2')
print(f'0.1 + 0.2 = {ans2}')
运行截图:
总结:
1.为什么line4输出结果显示存在误差?
1)由于计算机内部以二进制保存,所以十进制的有限位的小数,在计算机内部会是一个无限位的小数。
2)计算机保存浮点数的精度有限,例如float可以保留十进制最多7位(二进制23位)有效数字,double 可以保留十进制15~16位(二进制52位)有效数字。那有效数字以后的就被忽略了。
2.python decimal(小数)模块
实验任务4
1.字符编码相关
# chr()返回unicode编码对应的字符
print(chr(0x1f600), end = " ")
print(chr(0x1f601), end = " ")
print(chr(0x1f602), end = " ")
print(chr(0x1f603), end = " ")
print(chr(0x1f604))
print(chr(10000), end=" ")
print(chr(0x025b), end=" ")
print(chr(0x2708), end=" ")
print(chr(0x00A5), end=" ")
print(chr(0x266b))
# ord()返回字符的unicode编码
print(ord('a'), end = " ")
print(ord('b'), end = " ")
print(ord('c'))
print(ord('A'), end = " ")
print(ord('B'), end = " ")
print(ord('C'))
print(ord('0'), end = " ")
print(ord('1'), end = " ")
print(ord('2'))
运行截图:
实验任务5
1.简单的数学计算
import math
n = float(input('输入一个数:'))
# python中计算开平方的三种方式
ans1 = n**0.5
ans2 = pow(n, 0.5)
ans3 = math.sqrt(n)
print('%.2f的平方根是: %.2f' %(n, ans1)) # 以传统风方式(%)输出
print('{:.2f}的平方根是: {:.2f}'.format(n, ans2)) # 使用str.format()方式输出
print(f'{n:.2f}的平方根是: {ans3:.2f}') # 使用f-string方式输出
运行截图:
2.神奇的pi与大饼
import math
text = '''
好奇心是人的天性。
理想情况下,学习新东西是让人愉快的事。
但学校里的学习似乎有点像苦役。
有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点。
'''
print(text)
r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大: '))
circle = 2*math.pi*r
print(f'绕起来,大饼的圆周有这么长, {circle}, 够不够激发你探索未知的动力...')
运行截图:
实验任务6
1.编写一个计算x的365次方的程序
import math as ma
x=eval(input('x取1.0,1.01,0.99:'))
print(f'{x}的365次方:{pow(x,365)}')
运行截图:
实验任务7
1.煮出完美的鸡蛋
#参数M, ρ, c, K是蛋的性质:M是质量,ρ是密度,c是比热容,K是热导率。
import math as ma
p=1.038
c=3.7
k=5.4*(10**(-3))
m1=47
m2=67
t_w=100
t_y=70
t0=eval(input('t0:'))
t=(m2**(2/3)*c*p**(1/3))/(k*(ma.pi)**2*(4*(ma.pi)/3)**(2/3))*ma.log(0.76*(t0-t_w)/(t_y-t_w))
min=round(t//60)
sec=round(t-min*60)
print(f'T0={t0}℃,t={min}分{sec}秒')
运行截图:
实验任务8
家用电器销售系统
1.格式化操作符
"""
家用电器销售系统
v1.0
"""
#欢迎信息
print('欢迎使用家用电器销售系统!')
#产品信息列表
print('产品和价格信息如下:')
print('*********************************************************')
print('%-10s'%'编号','%-10s'%'名称','%-10s'%'品牌','%-10s'%'价格','%-10s'%'库存数量')
print('---------------------------------------------------------')
print('%-10s'%'0001','%-10s'%'电视机','%-10s'%'海 尔','%-15.2f'% 5999.00,'%d'% 20)
print('%-10s'%'0002','%-11s'%'冰 箱','%-9s'%'西门子','%-15.2f'% 6998.00,'%d'% 15)
print('%-10s'%'0003','%-10s'%'洗衣机','%-9s'%'小天鹅','%-15.2f'% 1999.00,'%d'% 10)
print('%-10s'%'0004','%-11s'%'空 调','%-10s'%'格 力','%-15.2f'% 3900.00,'%d'% 0)
print('%-10s'%'0005','%-10s'%'热水器','%-10s'%'美 的','%-15.2f'% 688.00,'%d'% 30)
print('%-10s'%'0006','%-10s'%'笔记本','%-10s'%'联 想','%-15.2f'% 5699.00,'%d'% 10)
print('%-10s'%'0007','%-10s'%'微波炉','%-9s'%'苏泊尔','%-15.2f'% 480.50,'%d'% 33)
print('%-10s'%'0008','%-10s'%'投影仪','%-10s'%'松 下','%-15.2f'% 1250.00,'%d'% 12)
print('%-10s'%'0009','%-10s'%'吸尘器','%-9s'%'飞利浦','%-15.2f'% 999.00,'%d'% 9)
print('---------------------------------------------------------')
#用户输入信息
product_id=input('请输入您要购买的产品编号:')
price=float(input('请输入您要购买的产品价格:'))
count=int(input('请输入您要购买的产品数量:'))
#计算金额
print('购买成功,您需要支付',price*count,'元')
#退出系统
print('谢谢您的光临,下次再见!')
运行截图:
2.format()格式化输出
"""
家用电器销售系统
v1.0
"""
#欢迎信息
print('欢迎使用家用电器销售系统!')
#产品信息列表
print('产品和价格信息如下:')
print('**************************************************************')
print('{:10s}{:10s}{:10s}{:10s}{:10s}'.format('编号','名称','品牌','价格','库存数量'))
print('--------------------------------------------------------------')
print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0001','电视机','海 尔',5999,'20'))
print('{:10s}{:11s}{:9s}{:<10.2f}{:^10s}'.format('0002','冰 箱','西门子',6998,'15'))
print('{:10s}{:10s}{:9s}{:<10.2f}{:^10s}'.format('0003','洗衣机','小天鹅',1999,'10'))
print('{:10s}{:11s}{:10s}{:<10.2f}{:^10s}'.format('0004','空 调','格 力',3900,'0'))
print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0005','热水器','美 的',688,'30'))
print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0006','笔记本','联 想',5699,'10'))
print('{:10s}{:10s}{:9s}{:<10.2f}{:^10s}'.format('0007','微波炉','苏泊尔',480.5,'33'))
print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0008','投影仪','松 下',1250,'12'))
print('{:10s}{:10s}{:9s}{:<10.2f}{:^10s}'.format('0009','吸尘器','飞利浦',999,'9'))
print('--------------------------------------------------------------')
#用户输入信息
product_id=input('请输入您要购买的产品编号:')
price=float(input('请输入您要购买的产品价格:'))
count=int(input('请输入您要购买的产品数量:'))
#计算金额
print('购买成功,您需要支付',price*count,'元')
#退出系统
print('谢谢您的光临,下次再见!')
运行截图:
3.使用f''格式化输出
"""
家用电器销售系统
v1.0
"""
#欢迎信息
print('欢迎使用家用电器销售系统!')
#产品信息列表
print('产品和价格信息如下:')
print('**************************************************************')
print(f"{'编号':<10s}{'名称':<10s}{'品牌':<10s}{'价格':<10s}{'库存数量':<10s}")
print('--------------------------------------------------------------')
print(f"000{'1':<7s}{'电视机':<10s}{'海 尔':<10s}{5999:<15.2f}{'20':<10s}")
print(f"000{'2':<7s}{'冰 箱':<11s}{'西门子':<9s}{6998:<15.2f}{'15':<10s}")
print(f"000{'3':<7s}{'洗衣机':<10s}{'小天鹅':<9s}{1999:<15.2f}{'10':<10s}")
print(f"000{'4':<7s}{'空 调':<11s}{'格 力':<10s}{3900:<15.2f}{'0':<10s}")
print(f"000{'5':<7s}{'热水器':<10s}{'美 的':<10s}{688:<15.2f}{'30':<10s}")
print(f"000{'6':<7s}{'笔记本':<10s}{'联 想':<10s}{5699:<15.2f}{'10':<10s}")
print(f"000{'7':<7s}{'微波炉':<10s}{'苏泊尔':<9s}{480.5:<15.2f}{'33':<10s}")
print(f"000{'8':<7s}{'投影仪':<10s}{'松 下':<10s}{1250:<15.2f}{'12':<10s}")
print(f"000{'9':<7s}{'吸尘器':<10s}{'飞利浦':<9s}{999:<15.2f}{'9':<10s}")
print('--------------------------------------------------------------')
#用户输入信息
product_id=input('请输入您要购买的产品编号:')
price=float(input('请输入您要购买的产品价格:'))
count=int(input('请输入您要购买的产品数量:'))
#计算金额
print('购买成功,您需要支付',price*count,'元')
#退出系统
print('谢谢您的光临,下次再见!')