实验1 Python开发环境使用和编程初体验
1 # test1.py 2 print('hey,u') 3 4 print('hey','u') 5 x,y,z=1,2,3 6 print(x,y,z) 7 8 print('x=%d,y=%d,z=%d'%(x,y,z)) 9 print('x={},y={},z={}'.format(x,y,z)) 10 print(f'x={x},y={y},z={z}') 11 12 print(x) 13 print(y) 14 print(z) 15 16 print(x,end='') 17 print(y,end='') 18 print(z)
1 x1, y1 = 1.2, 3.57 2 x2, y2 = 2.26, 8.7 3 print('{:-^40}'.format('输出1')) 4 print('x1={},y1={}'.format(x1,y1)) 5 print('x2={},y2={}'.format(x2,y2)) 6 7 print('{:-^40}'.format('输出2')) 8 print('x1={:.1f},y1={:.1f}'.format(x1,y1)) 9 print('x2={:.1f},y2={:.1f}'.format(x2,y2)) 10 11 print('{:-^40}'.format('输出3')) 12 print('x1={:<15.1f},y1={:<15.1f}'.format(x1,y1)) 13 print('x2={:<15.1f},y2={:<15.1f}'.format(x2,y2)) 14 15 print('{:-^40}'.format('输出4')) 16 print('x1={:>15.1f},y1={:>15.1f}'.format(x1,y1)) 17 print('x2={:>15.1f},y2={:>15.1f}'.format(x2,y2))
1 name1, age1 = 'Bill', 19 2 name2, age2 = 'Hellen', 18 3 title = 'Personnel Information' 4 print(f'{title:=^40}') 5 print(f'name:{name1:10},age:{age1:3}') 6 print(f'name:{name2:10},age:{age2:3}') 7 print(40*'=')
print输出的几种用法
用法1:用于输出单个字符串或单个变量
用法2: 用于输出多个数据项,用逗号分隔
用法3: 用户混合字符串和变量值
其它: 输出后是否换行
1 r1=eval('1+2') 2 print(type(r1),r1) 3 r2=eval('[1,6,7.5]') 4 print(type(r2),r2) 5 r3=eval('"python"') 6 print(type(r3),r3) 7 r4=eval('7,42') 8 print(type(r4),r4)
1 x,y=eval(input('Enter two oprands:')) 2 ans=x+y 3 print(f'{x}+{y}={ans}') 4 print(f'{type(x)}+{type(y)}={type(ans)}')
内置函数eval()
功能:把字符串转换为python表达式
理解:相当于把圆括号中的内容,两侧引号去掉
一般将组合使用内置函数eval()和input()
1 ans1=0.1+0.2 2 print(f'0.1+0.2={ans1}') 3 4 from decimal import Decimal 5 ans2=Decimal('0.1')+Decimal('0.2') 6 print(f'0.1+0.2={ans2}')
为什么line4输出结果显示存在误差?
0.1
和 0.2
这样的数字在二进制浮点中没有精确的表示,对于二进制浮点数,虽然接近于零,但其中的误差将妨碍可靠的相等性检验,并且误差还会不断累积查阅decimal模块资料,尝试分析和思考,decimal模块中的工具Decimal()是如何进行浮点运算的?
decimal 模块旨在支持“无偏差,精确无舍入的十进制算术(有时称为定点数算术)和有舍入的浮点数算术”。decimal 数值是不可变对象。 它由符号,系数和指数位组成。 为了保持有效位,系数位不会截去末尾零。
1 print(chr(0x1f600),end=" ") 2 print(chr(0x1f601),end=" ") 3 print(chr(0x1f602),end=" ") 4 print(chr(0x1f603),end=" ") 5 print(chr(0x1f604)) 6 7 print(chr(10000), end=" ") 8 print(chr(0x025b), end=" ") 9 print(chr(0x2708), end=" ") 10 print(chr(0x00A5), end=" ") 11 print(chr(0x266b))
chr()返回unicode编码对应的字符
1 print(ord('a'), end = " ") 2 print(ord('b'), end = " ") 3 print(ord('c')) 4 5 print(ord('A'), end = " ") 6 print(ord('B'), end = " ") 7 print(ord('C')) 8 9 print(ord('0'), end = " ") 10 print(ord('1'), end = " ") 11 print(ord('2'))
ord()返回字符的unicode编码
1 from math import sqrt 2 n=float(input('请输入一个数:')) 3 ans1=sqrt(n) 4 ans2=n**0.5 5 print('%.2f的平方根是:%.2f'%(n,ans1)) 6 print('{:.2f}的平方根是:{:.2f}'.format(n,ans2)) 7 print(f'{n:.2f}的平方根是:{ans2:.2f}')
1 from math import pi 2 text = '''好奇心是人的天性。 理想情况下,学习新东西是让人愉快的事。 但学校里的学习似乎有点像苦役。 有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点。 ''' 3 print(text) 4 r=float(input('给学习画一个大饼,大饼要做的很大,半径要这么大:')) 5 circle=2*pi*r 6 print(f'绕起来,大饼的圆周有这么长,{circle},够不够激发你探索未知的动力...')
1 x=eval(input('请输入一个数:')) 2 y = x ** 365 3 if x>1: 4 print(f'{x:.2f}的365次方:{y:.3g}') 5 elif x<=1: 6 print(f'{x:.2f}的365次方:{y:.2f}')
1 from math import pi 2 T0=eval(input('请输入一个数值:')) 3 p=1.038 4 c=3.7 5 K=5.4*10**(-3) 6 M=67 7 Tw=100 8 Ty=70 9 import math 10 t=(M**(2/3)*c*p**(1/3))/(K*pi**2*(4*pi/3)**(2/3))*math.log((0.76*(T0-Tw))/(Ty-Tw),math.e) 11 a=int(t//60) 12 b=int(t%60) 13 print('T0=',T0,'℃,',end=" ") 14 print('t=',a,'分',b,'秒')
总结:本次实验课,我加深了对print(),chr(),ord(),eval()等函数的理解和熟练程度,也了解了三种格式化的方法但仍不能够熟练掌握,还学习了如何导入数学库并使用其内部工具,最后可以自己解决简单问题
但我对格式化的理解还不够,还有进制间的转换不了解需要课后额外学习,对各种函数和数据类型的应用不够熟练。
通过自己实践,我发现python是一个很有趣的工具,而且自己独立敲出代码并运行是一件很有成就感的事,但是需要自己多久练习巩固。