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

Posted ai-tomato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验1 Python开发环境使用和编程初体验相关的知识,希望对你有一定的参考价值。

实验任务一

task1_1.py

# 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)

运行结果截图

task1_2.py

# 使用字符串的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))

运行结果截图

task1_3.py

# 使用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字符串格式化输出

实验任务二

task2_1.py

# 内置函数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)

运行结果截图

task2_2.py

# 组合使用内置函数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()的用法:可以把输入的数据类型转变为我们想要的数据类型

实验任务三

task3.py

# 浮点数简单运算
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\')# 浮点数简单运算
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\')

运行结果截图

Q1:为什么line4输出结果显示存在误差?

出现上面的情况,主要还是因浮点数在计算机中实际是以二进制保存的,有些数不精确。
比如说: 0.1是十进制,转化为二进制后它是个无限循环的数:
0.00011001100110011001100110011001100110011001100110011001100
而python是以双精度(64)位来保存浮点数,多余的位会被截掉,所以看到的是0.1,但在电脑上实际保存的已不是精确的0.1,参与运算后,也就有可能点误差。

Q2:

 

实验任务四

task4.py

# 字符编码相关
# 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()的用法:在圆括号内打入字符可以得到对应的编码

实验任务五

task5_1.py

# 简单的数学计算
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方式输出

运行结果截图

 

 task5_2.py

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

运行结果截图

 

实验任务六

task6.py

x=float(input())
print(f"x的365次方:x**365")

运行结果截图

实验任务七

task7.py

from math import pi
from math import log
p=1.038
c=3.7
K=5.4*10**(-3)
M=67
Tw=100
Ty=70
To=float(input("从键盘输入To=:"))
t=(M**(2/3)*c*p**(1/3))/(K*pi**2*((4*pi)/3)**(2/3))*log(0.76*((To-Tw)/(Ty-Tw)))
print(f"To=To°C,t=t//60分t%60秒")

运行结果截图

本次实验回顾了math库中函数的调用。比如math.pi,math.log(x)。对于print和eval()函数等均有了更深的了解。对浮点数在计算机中的保存有了更深刻的认识

以上是关于实验1 Python开发环境使用和编程初体验的主要内容,如果未能解决你的问题,请参考以下文章

头歌实验一Python初体验——Hello World

头歌实验一Python初体验——Hello World

Django框架初体验

Django爱之初体验,Python如何开发接口

云起实验室有奖征文,精美好礼等你来领——《我的linux初体验》

Scrapy的初体验