实验任务1:
#print输出的几种用法 #用法1:用于输出单个字符串或单个变量 print('hey, u') #用法2:用于输出多个数据项,用逗号分隔 print('hey','u') x,y,z = 1,2,3 print(x,y,z) #用法3:用户混合字符串和变量值 print('x1 = %d, y1 = %d, z1 = %d' %(x,y,z)) #方式1:传统C风格 print('x1 = {}, y1 = {}, z1 = {}'.format(x,y,z)) #方式2: s.format()方法 print((f'x1 = {x}, y1 = {y}, z1 = {z}') # 方式3:f-string方式 #其他:输出后是否换行 print(x) #默认输出后换一行 print(y) print(z) print(x,end=' ') #输出结束后,不换行;通过end指定数据项之间的分隔符 print(y,end=' ') print(z)
#使用字符串的format()方法,对输出数据项进行格式化
x1, y1 = 1.2, 3.57
x2, y2 = 2.26, 8.7
#输出1
print('{:-^40}'.format('输出1')) #{:^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐
print('x1 = {}, y1 = {}'.format(x1,y1))
print('x2 = {}, y2 = {}'.format(x2,y2))
#输出2
print('{:-^40}'.format('输出2')) #{:^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:.1f}, y1 = {:.1f}'.format(x1,y1)) #{:.1f}控制小数输出精度,保留一位小数
print('x2 = {:.1f}, y2 = {:.1f}'.format(x2,y1))
#输出3
print('{:-^40}'.format('输出3')) #{:^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1,y1)) #{:<15.1f}控制输出数据宽度占15列,小数部分占1列,左对齐,空白处默认补空格
print('x2 = {:<15.1f}, y2 = {:<15.1f}'.format(x2,y2))
#输出4
print('{:-^40}'.format('输出3')) #{:-^40}控制输出数据格式;宽度占40列,居中对齐,空白处用-补齐
print('x1 = {:>15.1f}, y1 = {:>15.1f}'.format(x1,y1)) #{:>15.1f}控制输出数据宽度占15列,小数部分占1列,左对齐,空白处默认补空格
print('x2 = {:>15.1f}, y2 = {:>15.1f}'.format(x2,y2))
# 使用f-string方式输出数据并控制格式
name1, age1 = 'Bill', 19
name2, age2 = 'Hellen', 18
title = 'Personal Information'
print(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*'=')
实验总结:知识点概括:三种格式化字符串的方式 '%d'%() str.format() f''
print('{:-^40}'.format('居中的内容')
<代表左对齐 >代表右对齐 ^代表居中对齐
实验任务2:
#内置函数eval()
#功能:把字符串转换成python的表达式
#理解:相当于把圆括号里的内容,俩侧的引号去掉
r1 = eval('1+2') #相当于r1 = 1+2
print(type(r1),r1)
r2 = eval('[1, 6, 7.5]') #相当于r2 = ['1, 6, 7.5']
print(type(r2),r2)
r3 = eval('"python"') #相当于r3 ="python"
print(type(r3),r3)
r4 = eval('7,42') #相当于r4 = 7,43
print(type(r4),r4)
#组合使用内置函数eval()和input()
x,y = eval(input('Enter two oprands:')) #输出的俩个操作数之间用逗号分隔(英文半角输入法下的逗号)
ans = x+y
print(f'{x} + {y} = {ans}')
print(f'{type(x)} + {type(y)} = {type(ans)}')
实验总结:eval()函数括号里的必须是字符串,才可对应转换,通常情况与input连用
实验任务3:
#浮点数简单运算
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}')
实验总结:浮点数计算时可能会出现小数点位数不确定的情况,
使用from Decimal import decimal
x = Decimal()+ Decimal()的方式可以解决该问题
实验任务4:
#字符编码相关
#chr()返回unicode编码对应的字符
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()函数可以将unicode编码对应的字符转化出来
这个我就很不李姐为什么把代码copy到pycharm上运行会报错,最后重新打一遍就有可以了?求大佬指点迷津
实验任务5:
#简单的数学计算
from math import sqrt
n = float(input('输入一个数字:'))
#python中计算开平方的俩种计算方式
ans1 = sqrt(n)
ans2 = n**0.5
print('%.2f的平方根是:%.2f' %(n, ans1)) #以传统C风格方式输出
print('{:.2f}的平方根是:{:.2f}'.format(n, ans2)) #使用字符串format()方法输出
print(f'{n:.2f}的平方根是:{ans2:.2f}') #使用f-string方式输出
#神奇的pi,与大饼
from math import pi
text = '''
好奇心是人的天性。
理想情况下,学习新东西是让人愉快的事情。
但学校里的学习似乎有点像苦役。
有时候,需要画一个大饼,每尝试学一些新鲜的,才会每天变得更好一点点。
'''
print(text)
r = float(input('给学习画一个大饼,大饼要做的很大,半径要那么大:'))
circle = 2*pi*r
print(f'绕起来,大饼的圆周有那么长,{circle},够不够激发你探索未知的动力...')
实验总结:平方根的俩种表示方法:1.sqrt() 2.**0.5,还有画大饼的代码之前见过一次有一点印象,再次看到又熟悉了一下
实验任务6:
#一个简单的算术运算程序
number = int(input('Enter a number:'))
result = number**365
print(number,'的365次方:',result)
实验总结:python里的平方最好用**来表示,因为^在python里有其他的含义,例如上文我们所提到的居中对齐,为了编译时减少不必要错误,建议用**,本人亲测
实验任务7:完美煮蛋
import math
p, c = 1.038, 3.7
k = 5.4*10**(-3)
M1=67
Tw, Ty = 100, 70
T0 = eval(input('Enter a number:'))
t1 = (M1**(2/3) * c * p**(1/3))/(k * math.pi**2 * (4 * math.pi / 3)**(2/3))
t2 = math.log(0.76*(T0-Tw)/(Ty-Tw))
t3 = t1 * t2
minute = t3 // 60
second = t3 % 60
print('T0 = {}°C'.format(T0))
print('t = {}分{:.2f}秒'.format(minute, second)) #保留小数点后俩位
实验总结:对于复杂的表达式,我们可以通过分解的方式来简化,减少代码出错的概率,同时还可以增强代码的可读性。
摄氏度的表达用到了插入的方式,小数点的保留格式{:.1f}