sunchenxi

导航

实验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是一个很有趣的工具,而且自己独立敲出代码并运行是一件很有成就感的事,但是需要自己多久练习巩固。

 

 

posted on 2022-03-25 14:47  靠谱一星  阅读(55)  评论(1编辑  收藏  举报