实验1 Python开发环境使用和编程初体验

# 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.用于输出多个数据项,用逗号分隔

3.用户混合字符串和变量值

4.输出后是否换行

5.利用占位实现输出

6.用format函数进行格式化

7输出.f-string模式(print(f ' ')中间量用{}引用)

task2

# 内置函数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()的用法

1.把字符串转换为python表达式,相当于把圆括号中的内容,两侧引号去掉

2.转换input()字符串格式

task3

1 # 浮点数简单运算
2 
3 ans1 = 0.1 + 0.2
4 print(f'0.1 + 0.2 = {ans1}')
5 
6 from decimal import Decimal
7 
8 ans2 = Decimal('0.1') + Decimal('0.2')
9 print(f'0.1 +0.2 = {ans2}')

question1:answer:因为浮点数存储时小数部分往往无法精确表示(二进制计算),只能舍入后存储,所以会产生误差。

question2:answer:以十进制方法计算。decimal是符合人类运算习惯的浮点数模型。因此不会产生二进制计算中的误差。

task4

 1 # 字符编码相关
 2 # chr返回unicode编码对应的字符
 3 
 4 print(chr(0x1f600),end = " ")
 5 print(chr(0x1f601),end = " ")
 6 print(chr(0x1f602),end = " ")
 7 print(chr(0x1f603),end = " ")
 8 print(chr(0x1f604))
 9 
10 print(chr(10000),end=" ")
11 print(chr(0x025b),end=" ")
12 print(chr(0x2708),end=" ")
13 print(chr(0x00A5),end=" ")
14 print(chr(0x266b))
15 
16 #ord()返回字符的unicode编码
17 print(ord('a'),end = " ")
18 print(ord('b'),end = " ")
19 print(ord('c'))
20 
21 print(ord('A'),end = " ")
22 print(ord('B'),end = " ")
23 print(ord('C'))
24 
25 print(ord('0'),end = " ")
26 print(ord('1'),end = " ")
27 print(ord('2'))

chr()和ord()作用

1.chr()作用

返回 Unicode 码位为整数 i 的字符的字符串格式。

2.ord()作用

对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。

task5

 1 # 简单的数学计算
 2 from math import sqrt
 3 
 4 n = float(input('输入一个数:'))
 5 
 6 # python 中计算开平方的两种方式
 7 ans1 = sqrt(n)
 8 ans2 = n**0.5
 9 
10 
11 print('%.2f的平方根是:%.2f'%(n,ans1))
12 print('{:.2f}的平方根是:{:.2f}'.format(n,ans2))
13 print(f'{n:.2f}的平方根是:{ans2:.2f}')

# 神奇的pi,与大饼

from math import pi

text = '''
        好奇是人的天性
        理想情况下,学习新东西是让人愉快的事情。
        但学校里的学习似乎有点像苦役。
        有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点
        '''
print(text)

r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大: '))

circle = 2*pi*r

print(f'绕起来,大饼的圆周有这么长,{circle},够不够激发你探索未知的动力...')

task6

1 # task6.py
2 
3 m = input('输入一个数:')
4 n = eval(m)
5 y = n**365
6 print(n,'的365次方:',y)

task7

 1 # 煮出完美的鸡蛋
 2 
 3 from math import pi
 4 p = 1.038
 5 c = 3.7
 6 K = 5.4*10**(-3)
 7 M = 67
 8 Tw = 100
 9 Ty = 70
10 T0 = eval(input('请输入温度:'))
11 import math
12 t = (M**(2/3)*c*p**(1/3))/(K*pi**2*(4*pi/3)**(2/3))*math.log(0.76*(T0-Tw)/(Ty-Tw),math.e)
13 a = int(t//60)
14 b = int(t%60)
15 print('T0=',T0,'℃,t=',a,'',b,'')

 

五、实验总结

通过本次实验,我知道并总结了print()输出的多种用法,同时训练了用format()对输出数据项进行格式化的方法,用f-string方式控制输出数据的格式,例如宽度占40列,居中对齐,空白处用-补齐,等等。我还训练了内置函数eval()的使用方法,并且训练了组合使用内置函数eval()和input()。除此之外,还训练了浮点数的简单运算,了解了unicode编码,以及内置函数chr()和ord()的功能,还训练了简单的数学运算,运用数学函数exp,pi等等。

通过本次实验,我开始主动到官网查找所需要的函数,掌握了exp(),pi()的用法,还知道了浮点舍入误差对精确计算的影响,但是我依旧发现自己有许多不足的地方,比如:还不能熟练的转换字符串和数据,对二进制,八进制,十六进制等函数掌握不够熟练,需要加强记忆,对unicode编码了解不是很够,需要自己在课外主动学习。

最后,分享到官网查找函数的网址:https://docs.python.org/zh-cn/3/library/math.html

 

posted @ 2022-03-24 21:59  熊猫小丸子  阅读(144)  评论(2编辑  收藏  举报