实验1(!)
第一部分(1)
print('hey,u') print('hey','u') x,y,z=1,2,3 print(x,y,z) print('x=%s,y=%s,z=%s'%(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)
对应输出

第一部分(2)
x1,y1=1.2,3.57 x2,y2=2.26,8.7 print('{:-^40}'.format('输出1')) print('x1={},y1={}'.format(x1,y1)) print('x2={},y2={}'.format(x2,y2)) print('{:-^40}'.format('输出2')) print('x1={:.1f},y1={:.1f}'.format(x1,y1)) print('x2={:.1f},y2={:.1f}'.format(x2,y2)) 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('{:-^40}'.format('输出4')) print('x1={:>15.1f},y1={:>15.1f}'.format(x1,y1)) print('x2={:>15.1f},y2={:>15.1f}'.format(x2,y2))
对应输出

第一部分(3)
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*'=')
对应输出

小结:
print语法:
print(*objects, sep=' ', end='\n', file=sys.stdout)
参数的具体含义如下:
objects --表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。
sep -- 用来间隔多个对象。
end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。
file -- 要写入的文件对象。
用于:
输出变量
数据的格式化输出
占位输出
输出是否换行
第二部分(1)
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)

第二部分(2)
x, y = eval(input('Enter two oprands: '))
ans = x + y
print(f'{x} + {y} = {ans}')
print(f'{type(x)} + {type(y)} = {type(ans)}')



小结:eval函数就是实现list、dict、tuple,int 与str之间的转化,字符串里面是什么,就会相应的转换成什么
第三部分
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}')

小结:
因为浮点数存储时小数部分往往无法精确表示(二进制计算),只能舍入后存储,所以会产生误差。
decimal是使用十进制,因此不会产生二进制计算中的误差。
第四部分
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)) 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'))
对应输出

总结:
ord()将元素转为ASCII码
chr()将ASCII码转回对应元素
这个常见于要求你输出字典序最小的数据
或者我想遍历从‘a'-’z'
第五部分(1)
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}')
对应输出

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

第六部分
while True:
x = eval(input("请输入一个数: "))
y = x**365
print(f"{x}的365次方:{y}")
对应输出

(写个while方便测试)
第七部分:
import math
p = 1.038
c = 3.7
k = 0.0054
m1 = 47
m2 = 67
tw = 100
ty = 70
t0 = int(input("输入原始温度:"))
t = m2**(2/3) * c * p**(1/3) * math.log(0.76*(t0 - tw)/(ty - tw))/math.log(math.e)/(k * math.pi**2 * (4*math.pi/3)**(2/3))
print(f"T0= {t0} °C,t = {t//60:2g} 分 {t%60:.0f}秒")


总结:
通过本次实验,我学习了print()格式化输出的多种方法,它们是:用%string,用format(),用f-string三种方式,还有自动填充,居中或靠左右对齐输出的实现方式,等等。我还知道了eval()的使用方法,学会了组合使用内置函数eval()和input(),还练习了浮点数的简单运算以及内置函数chr()和ord()的作用。
给大家推荐刷题网站力扣:力扣 (leetcode-cn.com)

浙公网安备 33010602011771号