实验一
#task1_1.py
print('hey, u') print('hey', ' u') x,y,z = 1,2,3 print(x, y, z) print('x = %d, y = %d, z = %d' %(x,y,z)) print('x = {}, y = {}, z = {}'.format(x,y,z)) print(f'x = {x}, y = {y}, z = {z}') print(x) print(y) print(z) print(x, end=' ') print(y, end=' ') print(z)
#task1_2.py x1, y1 = 1.2, 3.57 x2, y2 = 2.26, 8.7 # 输出1 print('{:-^40}'.format('输出1')) print('x1 = {}, y1 = {}'.format(x1, y1)) print('x2 = {}, y2 = {}'.format(x2, y2)) # 输出2 print('{:-^40}'.format('输出2')) print('x1 = {:.1f}, y1 = {:.1f}'.format(x1, y1)) print('x2 = {:.1f}, y2 = {:.1f}'.format(x2, y2)) # 输出3 print('{:-^40}'.format('输出3')) print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1, y1)) print('x2 = {:<15.1f}, y2 = {:<15.1f}'.format(x2, y2)) # 输出4 print('{:-^40}'.format('输出3')) print('x1 = {:>15.1f}, y1 = {:>15.1f}'.format(x1, y1)) print('x2 = {:>15.1f}, y2 = {:>15.1f}'.format(x2, y2))
实验一(总结):print('')输出的是单引号中的内容,如果有需要的话可以用逗号将不同的内容分隔开,其次如果碰到了需要输出引号的情况,这是可以用("' '")来加以区分,在输出的情况下可以采用三种常见的模式:1.利用占位实现输出2.用format函数3.f-string的模式即print(f' ')中间的量用{}来引用
实验二(总结):1.学习了有关于控制输出数据的格式,学习了一些对齐模式、选用的宽度占位、默认补足的情景、小数部分占位的情景{:-^40}控制输出数据格式: 宽度占40列,居中对齐空白处用-补齐,
{:>15.1f}控制数据输出宽度占15列,小数部分占1列,右对齐,空白处默认补空格(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*'=')12
2. eval的用法:能够把字符串转换为python表达式,相当于把圆括号的内容,将两侧的引号去掉
#task1_3.py
name1, age1 = 'Bill', 19 name2, age2 = 'Hellen', 18 title = 'Personnel Information' print(f'{title:=^40}') print(f'name: {name1:10}, age: {age1:3}') print(f'name: {name2:10}, age: {age2:3}') print(40*'=')
#task2_1.py r1 = eval('1 + 2') print(type(r1), r1) r2 = eval('[1, 6, 7.5]') print(type(r2), r2) r3 = eval('"python"') print(type(r3), r3) r4 = eval('7, 42') print(type(r4), r4)
#task2_2.py x, y = eval(input('Enter two oprands: ')) ans = x + y print(f'{x} + {y} = {ans}') print(f'{type(x)} + {type(y)} = {type(ans)}')
#task3.py ans1 = 0.1 + 0.2 print(f'0.1 + 0.2 = {ans1}') from decimal import Decimal ans2 = Decimal('0.1') + Decimal('0.2') print(f'0.1 + 0.2 = {ans2}')
问题1:1.1
和 2.2
这样的数字在二进制浮点中没有精确的表示
问题2:decimal:是符合和人类运算习惯的浮点数模型,因此再进行计算的时候和人们平时计算的结果是一致的,而不会存在二进制计算中的误差
#task4.py 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'))
chr()和ord()函数的用法:chr()是将数字转化成ASCII中的字符而ord()是将字符转化成对应的数字
#task5_1.py from math import sqrt n = float(input('输入一个数:')) ans1 = sqrt(n) ans2 = n**0.5 print('%.2f的平方根是: %.2f' %(n, ans1)) print('{:.2f}的平方根是: {:.2f}'.format(n, ans2)) print(f'{n:.2f}的平方根是: {ans2:.2f}')
#task5_2.py from math import pi text = ''' 好奇心是人的天性。 理想情况下,学习新东西是让人愉快的事。 但学校里的学习似乎有点像苦役。 有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点。 ''' print(text) r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大: ')) circle = 2*pi*r print(f'绕起来,大饼的圆周有这么长, {circle}, 够不够激发你探索未知的动力...')
#task6.py x=float(input('输入一个有理数:')) y=x**365 print(x,'的365次方',y)
# task7.py import math a = math.pi rou = 1.038 c = 3.7 K = 5.4 * (10 ** (-3)) M = 67 Tw = 100 Ty = 70 T0 = int(input('放入水中之前蛋的原始温度:')) t = (M**(2/3)*c*rou**(1/3)) / (K*a*a*(4*a/3)**(2/3))*math.log(0.76 * (T0 - Tw) / (Ty - Tw)) print('T0=', T0, '摄氏度', ',', 't=', int(t / 60), '分', t - 60 * int(t / 60), '秒')
总结:学到了许多知识,实践出真知,经过自己动手操作对Python认识更进一步了。