【Python学习篇】Python实验小练习(三)

简介: 【Python学习篇】Python实验小练习(三)

一、实验目的:

(1)掌握python数字类型的使用方法

(2)掌握将数学表达式转换成python语言表达式的方法及注意

(3)掌握有关运算符号的特殊要求

(4)掌握输入、输出函数的使用方法

(5)掌握格式字符串的使用方法

(6)掌握使用格式字符串进行数制转换的方法

二、实验环境

       内部预装Windows 7或更高版本的操作系统,并集成安装了Python 3.7的IDLE开发环境,为您提供便捷高效的编程体验。

三、实验内容:

       1、输出整数500的浮点数、二进制数、八进制数和十六进制数。

       2、编写程序求多项式ax3+bx2+c的值(a=2,b=3,c=4,x=1.414)

       3、编写程序求下列复合赋值后a的值,并输出a=2;a+=a;a-=2;a=a*2+3;a//=a+a;

       4、编写程序求表达式3.5+(9/2*(3.5+6.7)/2)%4

        5、a=3,b=4a,c=5,x=1.414,y=1,732,z=2.712,编写程序,要求按以下格式输出 a=3 b=4 c=5 x=1.414 y=1.732 z=2.712

       6、编写程序,将十进制数20、64、127分别转换为八进制数和十六进制数,并输出

       7、编写程序,计算并输出1/3的小数值,保留6位小数且带%(如:0;333333%)

       扩展:整数的拆分。从键盘任意输入一个3位正整数num,拆分出个位、十位和百位数字,并输出。

四、实验步骤与结果:

       1. 新建文件夹并命名。

       2. 安装 Python 解释器Python 3.7 集成开发环境IDLE,并进入IDLE。

       3. 依次执行编好的程序实验内容源程序,分别命名为sy1_1.py - sy1_7.py 并保存至已建好的文件夹中。

       4. 检查已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。

       5. 运行程序并分析运行结果是否合理。在运行时要注意当输入不同的数据时所得结果是否正确,应测试两组以上数据,分别检查在不同情况下结果是否正确。

4.1 输出整数500的浮点数、二进制数、八进制数和十六进制数。

       在Python中,可以使用内置的float(), bin(), oct(), 和 hex() 函数来将整数转换为浮点数、二进制数、八进制数和十六进制数。下面是如何实现这一点的示例代码:

# 整数500
integer_value = 500
 
# 转换为浮点数
float_value = float(integer_value)
print(f"浮点数: {float_value}")
 
# 转换为二进制数
binary_value = bin(integer_value)
print(f"二进制数: {binary_value}")
 
# 转换为八进制数
octal_value = oct(integer_value)
print(f"八进制数: {octal_value}")
 
# 转换为十六进制数
hexadecimal_value = hex(integer_value)
print(f"十六进制数: {hexadecimal_value}")

       当你运行这段代码时,它会输出以下结果:

注意:bin(), oct(), 和 hex() 函数返回的字符串是以"0b", "0o", 和 "0x"为前缀的,分别表示二进制、八进制和十六进制数。如果你想要去除这些前缀,可以使用字符串切片或lstrip()方法:

# 整数500
integer_value = 500
 
# 转换为浮点数
float_value = float(integer_value)
print(f"浮点数: {float_value}")
 
# 转换为二进制数并去除前缀
binary_value = bin(integer_value)[2:]
print(f"去除前缀的二进制数: {binary_value}")
 
# 转换为八进制数并去除前缀
octal_value = oct(integer_value)[2:]
print(f"去除前缀的八进制数: {octal_value}")
 
# 转换为十六进制数并去除前缀
hexadecimal_value = hex(integer_value)[2:]
print(f"去除前缀的十六进制数: {hexadecimal_value}")

       当你运行这段代码时,它会输出以下结果:

2.2 编写程序求多项式ax3+bx2+c的值(a=2,b=3,c=4,x=1.414)

       以下是一个简单的Python程序,用于计算多项式 ax^3 + bx^2 + c 的值,其中 a=2, b=3, c=4, x=1.414

       这个程序首先定义了多项式中的系数和x的值,然后使用这些值来计算多项式的值,并将结果存储在result变量中。最后,它使用print函数输出计算结果。

# 定义多项式中的系数和x的值  
a = 2  
b = 3  
c = 4  
x = 1.414  
  
# 计算多项式的值  
result = a * x**3 + b * x**2 + c  
  
# 输出结果  
print(f"多项式的值为:{result}")

当你运行这段代码时,它会输出以下结果:  

2.3 编写程序求下列复合赋值后a的值,并输出a=2;a+=a;a-=2;a=a*2+3;a//=a+a;

在Python中,复合赋值语句如 +=, -=, *=, //= 等可以简化变量的赋值操作。这些复合赋值语句分别表示加法赋值、减法赋值、乘法赋值和整除赋值。

给定的复合赋值语句序列如下:

a = 2;

a += a;

a -= 2;

a = a * 2 + 3;

a //= a + a;

下面是Python实现这些复合赋值语句并输出最终a的值的代码:

# 初始化变量a  
a = 2  
  
# 执行复合赋值语句  
a += a  # a = a + a  
a -= 2  # a = a - 2  
a = a * 2 + 3  # a = a * 2 + 3  
a //= a + a  # a = a // (a + a)  
  
# 输出变量a的值  
print(f"最终a的值为:{a}")

当你运行这段代码时,它会输出以下结果:

当你运行这段代码时,它会按照给定的复合赋值语句序列执行,并输出最终a的值。

注意:最后一个复合赋值语句 a //= a + a 使用了整除赋值(//=),它表示 a 会被更新为其自身除以 a + a 的商(整数部分)。这可能会导致a的值变成一个较小的整数,具体取决于之前步骤中a的值。

2.4 编写程序求表达式3.5+(9/2*(3.5+6.7)/2)%4

       这段代码首先计算括号内的部分 (3.5 + 6.7),然后将结果乘以 9 / 2,接着将结果再除以 2,最后对结果进行取模运算 % 4。最后,将上述结果加到 3.5 上,并打印出最终的结果。

1. result = 3.5 + (9 / 2 * (3.5 + 6.7) / 2) % 4
2. print(result)

        当你运行这段代码时,它会输出以下结果:

2.5  a=3,b=4a,c=5,x=1.414,y=1,732,z=2.712,编写程序,要求按以下格式输出 a=3 b=4 c=5 x=1.414 y=1.732 z=2.712

在Python中,你可以创建一个程序来声明这些变量并按照指定的格式输出它们的值。以下是一个简单的实现:

# 定义变量  
a = 3  
b = 4 * a  
c = 5  
x = 1.414  
y = 1.732  
z = 2.712  
  
# 格式化输出  
print(f"a={a:<10}b={b:<10}c={c:<10}")  
print(f"x={x:<10.4f}y={y:<10.4f}z={z:<10.4f}")

       在这个程序中,我们使用了f-string(格式化字符串文字)来定义输出格式。< 是一个对齐修饰符,它表示左对齐,10 定义了字段宽度为10个字符。对于浮点数 x, y, 和 z,我们使用了 .4f 来指定输出小数点后四位。

当你运行这段代码时,它会输出以下结果:  

注意:由于浮点数的小数位数和表示可能会因计算机和Python解释器的实现而略有不同,输出可能会有些许差异,但通常这些差异是微不足道的,并且不影响结果的正确性。如果你需要确保输出的小数位数完全一致,你可以使用 round 函数来四舍五入到指定的小数位数。

2.6 编写程序,将十进制数20、64、127分别转换为八进制数和十六进制数,并输出

       在Python中,你可以使用内置的oct()和hex()函数来将十进制数转换为八进制和十六进制数。以下是一个简单的程序,它将十进制数20、64、127转换为八进制和十六进制数,并输出它们:

# 定义要转换的十进制数  
decimal_numbers = [20, 64, 127]  
  
# 遍历十进制数列表  
for decimal in decimal_numbers:  
    # 转换为八进制并移除前面的'0o'  
    octal = oct(decimal)[2:]  
    # 转换为十六进制并移除前面的'0x'  
    hexadecimal = hex(decimal)[2:]  
      
    # 输出结果  
    print(f"十进制数 {decimal} 转换为八进制是 {octal}, 转换为十六进制是 {hexadecimal}")

       在输出中,oct()函数返回的字符串以'0o'开头,表示这是一个八进制数;hex()函数返回的字符串以'0x'开头,表示这是一个十六进制数。我们使用了切片操作[2:]来移除这些前缀,只保留转换后的数字部分。

       当你运行这段代码时,它会输出以下结果:

2.7 编写程序,计算并输出1/3的小数值,保留6位小数且带%(如:0;333333%)

       在Python中,你可以使用格式化字符串来得到带有固定小数位数和百分比的输出。以下是一个简单的程序,计算1/3的小数值,并保留6位小数且带百分号:

# 计算1/3的小数值  
decimal_value = 1 / 3  
  
# 将小数转换为百分比,并保留6位小数  
percentage = "{:.6%}".format(decimal_value)  
  
# 输出结果  
print(percentage)

       当你运行这段代码时,它会输出以下结果:  

扩展

整数的拆分。从键盘任意输入一个3位正整数num,拆分出个位、十位和百位数字,并输出。

使用Python来实现这个任务。以下是一个简单的程序,它接受一个3位正整数作为输入,然后拆分出个位、十位和百位数字,并输出它们。

# 获取用户输入的3位正整数  
num = int(input("请输入一个3位正整数:"))  
  
# 确保输入的是3位正整数  
if 100 <= num <= 999:  
    # 拆分数字  
    units = num % 10  # 个位数字  
    tens = (num // 10) % 10  # 十位数字  
    hundreds = num // 100  # 百位数字  
      
    # 输出结果  
    print(f"个位数字是:{units}")  
    print(f"十位数字是:{tens}")  
    print(f"百位数字是:{hundreds}")  
else:  
    print("输入错误,请输入一个3位正整数。")

       当你运行这个程序时,它会提示你输入一个3位正整数。输入后,它会拆分这个数字并输出个位、十位和百位上的数字。

例如,如果你输入数字123,输出将会是:

五、总结:

5.1 实验过程中的问题及解决方法:

1.使用 float() 函数时的问题

       问题:尝试将一个非数字字符串转换为浮点数。

       解决方法:在尝试转换之前,使用try-except块捕获ValueError异常,以确保输入是有效的数字字符串。

2.使用 bin(), oct(), 和 hex() 函数时的问题

       问题:这些函数只能接受整数作为输入,如果传入非整数类型,会抛出TypeError。

       解决方法:确保你传递给这些函数的值是整数类型。如果值可能是其他类型,可以先使用int()函数进行转换。

5.2 实验收获

1.转换类型的深入理解

       通过实践,我深入理解了这些函数如何将整数转换为浮点数、二进制、八进制和十六进制数。这加深了我对Python数据类型转换的认识,也提升了我处理不同类型数据的能力。

2. 错误处理的重要性

       在实验中,我遇到了类型转换失败的情况,例如尝试将非数字字符串转换为浮点数或尝试将非整数类型转换为二进制、八进制和十六进制数。通过使用try-except块捕获异常,我学会了如何优雅地处理这些错误情况,提高了代码的健壮性。

3. 格式化输出的技巧

       实验中,我了解到bin(), oct(), 和 hex()函数返回的字符串可能不包含足够的前导零,这影响了输出的可读性。通过使用字符串格式化,我学会了如何控制输出的格式,确保输出的字符串具有固定长度和适当的前导零。

4. 扩展应用的可能性

       通过本次实验,我不仅掌握了基本的类型转换技巧,还思考了这些函数在更复杂场景中的应用。例如,在处理二进制数据时,我可以使用bin()函数来查看整数的二进制表示;在调试或分析内存占用时,我可以使用hex()函数来查看内存地址的十六进制表示。

5. 编程实践和问题解决能力的提升

       通过动手实验,我不仅巩固了理论知识,还提升了自己的编程实践能力和问题解决能力。在遇到问题时,我学会了如何分析问题的原因,寻找解决方案,并通过实践验证解决方案的有效性。

目录
相关文章
|
4月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
2月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
168 57
|
2月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
2月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
4月前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
|
4月前
|
Python
Python学习的自我理解和想法(26)
这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!
|
7月前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
11月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
138 0
|
存储 Python Windows
【Python学习篇】Python实验小练习——函数(十)
【Python学习篇】Python实验小练习——函数(十)
90 1

热门文章

最新文章

推荐镜像

更多