实验1

实验任务1

# print输出的几种用法
# 用法1:用于输出单个字符串或单个变量
print('hey, u')
# 用法2: 用于输出多个数据项,用逗号分隔
print('hey', ' u')
x,y,z = 1,2,3
print(x, y, z)
# 用法3: 用户混合字符串和变量值
print('x = %d, y = %d, z = %d' %(x,y,z)) # 方式1: 传统c风格
print('x = {}, y = {}, z = {}'.format(x,y,z)) # 方式2: s.format()方法
print(f'x = {x}, y = {y}, z = {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}控制小数输出精度,保留1位小数
print('x2 = {:.1f}, y2 = {:.1f}'.format(x2, y2))
# 输出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 = 'Personnel 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*'=')

总结:print()有三种常用用法:1、使用%格式化输出。2、使用format()格式化输出。3、使用f字符串格式化输出

实验内容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()的用法:可以把输入的数据类型转变为我们想要的数据类型。

实验内容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}')

 

问题1:因为0.1,0.2在二进制浮点中没有精确的表达,而decimal数字的表达是完全精确的

问题2:我认为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编码可以得到对应的字符(编码的尽职要求是十进制,若遇到二进制等,就在前面加0b等);ord()的用法:在圆括号内打入字符可以得到对应的编码

实验内容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}, 够不够激发你探索未知的动力...')

 

实验内容6

 

x = eval(input("请输入一个数: "))
y = x**365
print(f"{x}的365次方:{y}")

实验内容7

import math
To = eval(input("请输入放入水中之前蛋的原始温度: "))
p = 1.038
c = 3.7
K = 5.4*10**(-3)
M = 67
Tw = 100
Ty = 70
pi = math.pi #得到圆周率
mu_0 = ((M**(2/3))*c*(p**(1/3)))/(K*(pi**2)*((4*pi/3)**(2/3)))
mu_1 = math.log(0.76*(To-Tw)/(Ty-Tw))
t = mu_0*mu_1
minutes = t//60 #得到t的分位
seconds = t%60 #得到t的秒位
print(f"To={To}°C,t={minutes:02.0f}分{seconds:.1f}秒")

实验总结:

1、本次实验回顾了math库中函数的调用。比如math.pi,math.log(x)。;Decimal库中Decimal()的调用。除此以外,对输出内容的宽度以及精度也进行了熟悉。

2、很多内容由于不用导致忘了,但经过复习后又进一步掌握了。

3、我比较喜欢那个大饼实验,里面使用了math库中的pi,多行字符串,第一次发现python可以这样有趣的方式输出。

posted @ 2022-03-23 18:45  杖卫  阅读(53)  评论(3编辑  收藏  举报