实验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)

posted @ 2022-03-23 18:06  WA自动机!  阅读(215)  评论(3)    收藏  举报