实验1 python开发环境使用和编程初体验

1.实验任务1

task1_1.py

 1 print('hey,u')
 2 
 3 print('hey', 'u')
 4 x, y, z = 1, 2, 3
 5 print(x, y, z)
 6 
 7 print('x=%d,y=%d,z=%d' % (x, y, z))
 8 print('x={},y={},z={}'.format(x, y, z))
 9 print(f'x={x},y={y},z={z}')
10 
11 print(x)
12 print(y)
13 print(z)
14 
15 print(x, end=' ')
16 print(y, end=' ')
17 print(z)

task1_2.py

 1 x1, y1 = 1.2, 3.57
 2 x2, y2 = 2.26, 8.7
 3 print('{:-^40}'.format(''))
 4 print('x1={},y1={}'.format(x1, y1))
 5 print('x2={},y2={}'.format(x2, y2))
 6 
 7 print('{:-^40}'.format(''))
 8 print('x1={:.1f},y1={:.1f}'.format(x1, y1))
 9 print('x2={:.1f},y2={:.1f}'.format(x2, y2))
10 
11 print('{:-^40}'.format(''))
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(''))
16 print('x1={:>15.1f},y1={:>15.1f}'.format(x1, y1))
17 print('x2={:>15.1f},y2={:>15.1f}'.format(x2, y2))

task1_3.py

1 name1,age1='Bill',19
2 name2,age2='Hellen',18
3 title='Person Information'
4 
5 print(f'{title:=^40}')
6 print(f'name:{name1:10},age:{age1:3}')
7 print(f'name:{name2:10},age:{age2:3}')
8 print(40*'=')

四.实验结论: print输出的几种用法:

用法1:用于输出单个字符串或单个变量

用法2用于输出多个数据项,用逗号分隔

用法3用户混合字符串和变量值

其它用法: 输出后是否换行。

2.实验任务2

task2_1.py

 1 r1 = eval('1+2')
 2 print(type(r1), r1)
 3 
 4 r2 = eval('[1,6,7.5]')
 5 print(type(r2), r2)
 6 
 7 r3 = eval('"python"')
 8 print(type(r3), r3)
 9 
10 r4 = eval('7,42')
11 print(type(r4), r4)

task2_2.py

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表达式

功能:把字符串转换为python表达式

理解:相当于把圆括号中的内容,两侧引号

3.实验任务3

task3.py

1 ans1 = 0.1 + 0.2
2 print(f'0.1+0.2={ans1}')
3 
4 from decimal import Decimal
5 
6 ans2 = Decimal('0.1') + Decimal('0.2')
7 print(f'0.1+0.2={ans2}')

四.实验结论

问题一:Decimal 数字的表示是完全精确的。 相比之下,1.1 和 2.2 这样的数字在二进制浮点中没有精确的表示,所以输出结果存在误差。

问题二:decimal 数值是不可变对象。 它由符号,系数和指数位组成。 为了保持有效位,系数位不会截去末尾零。 decimal 数值也包括特殊值例如 Infinity ,-Infinity 和 NaN 。 该标准还区分 -0 和 +0 。

算术的上下文是指定精度、舍入规则、指数限制、指示操作结果的标志以及确定符号是否被视为异常的陷阱启用器的环境。 舍入选项包括 ROUND_CEILING 、 ROUND_DOWN 、 ROUND_FLOOR 、 ROUND_HALF_DOWNROUND_HALF_EVEN 、 ROUND_HALF_UP 、 ROUND_UP 以及 ROUND_05UP.

信号是在计算过程中出现的异常条件组。 根据应用程序的需要,信号可能会被忽略,被视为信息,或被视为异常。 十进制模块中的信号有:Clamped 、 InvalidOperation 、 DivisionByZero 、 Inexact 、 Rounded 、 Subnormal 、 Overflow 、 Underflow 以及 FloatOperation 。

对于每个信号,都有一个标志和一个陷阱启动器。 遇到信号时,其标志设置为 1 ,然后,如果陷阱启用器设置为 1 ,则引发异常。 标志是粘性的,因此用户需要在监控计算之前重置它们。

4.实验任务4

 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 print(chr(10000), end=" ")
 7 print(chr(0x025b), end=" ")
 8 print(chr(0x2708), end=" ")
 9 print(chr(0x00A5), end=" ")
10 print(chr(0x266b))
11 print(ord('a'), end = " ")
12 print(ord('b'), end = " ")
13 print(ord('c'))
14 print(ord('A'), end = " ")
15 print(ord('B'), end = " ")
16 print(ord('C'))
17 print(ord('0'), end = " ")
18 print(ord('1'), end = " ")
19 print(ord('2'))

四.实验结论:

chr()的用法:chr()返回unicode编码对应的字符

ord()的用法:ord()返回字符的unicode编码

作用:UCS2和UTF16中会使用0x00作为某个字符编码的一部分,某些系统会把0x00当作字符串结束的标志,在处理UCS2或UTF16编码时会出现问题,其作用是解决这些问题。

5.实验任务5

task5_1.py

1 from math import sqrt
2 
3 n = float(input('输入一个数:'))
4 ans1 = sqrt(n)
5 ans2 = n ** 0.5
6 
7 print('%.2f的平方根:%.2f' % (n, ans1))
8 print('{:.2f}的平方根是:{:.2f}'.format(n, ans2))
9 print(f'{n:.2f}的平方根是:{ans2:.2f}')

task5_2.py

 1 from math import pi
 2 
 3 text = '''
 4         好奇心是人的天性
 5         理想情况下,学习新东西是让人愉快的事。
 6         但学校里的学习似乎有点像苦役。
 7         有时候,需要画一个大饼,每次尝试学一些新鲜的。才会每天变得更好一点。
 8         '''
 9 print(text)
10 
11 r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大:'))
12 
13 circle = 2 * pi * r
14 
15 print(f'绕起来,大饼的圆周有那么长,{circle},够不够激发你探索未知的动力...')

6.实验任务6

1 x = eval(input('请输入一个数字:'))
2 y = x ** 365
3 print(f'{x}的365次方:{y}')

7.实验任务7

 1 T0 = eval(input('放入水中之前蛋的原始温度:'))
 2 p = 1.038
 3 c = 3.7
 4 K = 5.4 * 10 ** (-3)
 5 M = 67
 6 Tw = 100
 7 Ty = 70
 8 from math import pi
 9 import math
10 t=(M**(2/3)*c*p**(1/3))*math.log((0.76*(T0-Tw))/(Ty-Tw),math.e)/(K*(pi**2)*(4*pi/3)**(2/3))
11 a=int(t//60)
12 b=int(t%60)
13 print(f'T0={T0}℃',end=',')
14 print(f'{a}分{b}秒')

五.实验总结:

通过这次试验我收获了print()用于输出的几种用法,函数eval()的用法,chr()和ord()的用法。我的新发现是python比我想象中的还要高效,有用。切切实实地感受到python的难度和乐趣。目前我存在的问题是对各类函数,如ord()等不熟练,还存在各种格式化书写的问题。最后,我觉得同那些python大佬所说,python是一门需要自己动手练习的语言,其中最需要的是从错误中总结,从错误中提升自己的能力。

posted @ 2022-03-25 21:48  气工一班刘璇  阅读(95)  评论(2编辑  收藏  举报