python实验报告1

1.实验目的

(1)掌握集成开发环境IDLE的基本配置方法;

(2)理解Python语言程序的调试方法和步骤;

(3)理解常用运算符的功能、优先级和结合性;

(4)熟练掌握算术表达式的、关系表达式,理解逻辑表达式;

(5)熟练掌握列表、字符串的创建;

(6)熟练掌握列表、字符串的基本操作。

2.  实验内容

(1) 运算符与基本表达式

代码及对应说明:

print(True + False)
#先转化为int类型, 然后1+0, 最终输出为1

print(True or False)
#逻辑或, 输出逻辑值True

print(5 / 2)
#输出浮点类型, 下面给出验证:
a = 5/2
print(type(a))
#可见符号'/'可输出浮点类型

print(5//2)
#双斜杠等同于C里的单斜杠, 转化为int类型, 下面给出验证:
b = 5 // 2
print(type(b))
#可见'//'运算后转化为int类型

print(5 % 2)
#取余, 同C语言

print(3**2)
#指数取幂运算

print(3 + (2+3j))
#输出复数

print(3-4 and True and -5+8)
#3-4为-1, 逻辑1, True为逻辑1, -5+8为3, 也是逻辑1, 三个操作数都是逻辑1
#根据逻辑运算 and 的规则,如果两个操作数都为 True,则返回第二个操作数。故最终结果为3

print(3-4>0 or 1==5-4 or 5/2 or 0)
#根据逻辑运算 or 的规则,如果有一个操作数为 True,则返回第一个为 True 的操作数.
#第一个算式的结果是逻辑0, 但第二个算式的结果是逻辑1, 短路, 所以编译器不再计算第三个算式, 直接返回True

print(3-4>0 or 5/2 or 0)
#由于第一个算式是逻辑0, 但第二个算式是2.5, 逻辑1, 短路, 所以编译器不再计算第三个算式, 直接返回2.5


"""
output:
1
True
2.5
<class 'float'>
2
<class 'int'>
1
9
(5+3j)
3
True
2.5
"""

2)编写程序:计算表达式

请编写程序计算y的值:

从键盘输入a,b,c的值

输出计算出的y值,注意结果保留3位小数。

代码及对应说明:

from math import sqrt
delta = lambda a, b, c: (b**2 - 4*a*c)
y = lambda a, b, c: (-b + sqrt(b**2 - 4*a*c))/(2*a)
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
# a, b, c所组成一元二次方程必须有实根, 否则无法输出
if delta(a, b, c) >= 0:
    print("{:.3f}".format(y(a, b, c)))
else:
    print("方程无实根! 请重新输入!")1


"""
output:
a = 1
b = 2
c = 1
-1.000
"""

3)编写程序:格式化输出

请根据要求,按步骤完成代码:

1)从键盘输入一个数,转化成浮点类型数据

2)打印该数值,保留小数点后6位;

3)打印该数值,整个输出占据的字段宽度为12,保留小数点3位,左侧不足宽度部分用0填充;

4)在一行内,将该数打印两次

       a. 第一次,将数字输出为整数(小数部分四舍五入),字段宽度10,左对齐;

       b. 第二次,输出该数字,字段宽度10,保留小数点2位,右对齐。

   注意:a、b输出中间无空格

代码及对应说明:

# 从键盘输入一个数,转化成浮点类型数据
num = float(input("请输入一个数:"))

# 打印该数值,保留小数点后6位
print(f"该数值(保留6位小数):{num:.6f}")

# 打印该数值,整个输出占据的字段宽度为12,保留小数点3位,左侧不足宽度部分用0填充
print(f"该数值(宽度为12,保留3位小数,左侧补0):{num:012.3f}")

# 在一行内,将该数打印两次
# 第一次,将数字输出为整数(小数部分四舍五入),字段宽度10,左对齐
# 第二次,输出该数字,字段宽度10,保留小数点2位,右对齐
print(f"整数输出(左对齐):{num:.0f}{num:10.2f}")

"""
output:
请输入一个数:3.141592653
该数值(保留6位小数):3.141593
该数值(宽度为12,保留3位小数,左侧补0):00000003.142
整数输出(左对齐):3      3.14
"""

4)更正代码

"""

下述代码有语法错误和逻辑错误,请将代码复制到开发工具的编辑器里,尝试调试更正错误。

调试方法提示:

1)可以在怀疑出错的代码行下方,添加打印语句,观察变量的输出内容是否正确;

2)可以利用开发工具的调试功能,例如“执行到光标处”,或者设置“断点”,调试运行

代码如下:

"""

import math

radius = input('Please input radius: ')

# 求圆的面积

area = math.pi * radius * radius

print('面积的值是   : %s' % area)

# 求面积的整数,向下取整

num = math.floor(area)

# 分别打印面积的整数部分和小数部分,小数点保留6位

print('面积的整数部分: {} 面积的小数部分{:.6f}'.format(num, area-num))

"""

更正后的代码及其运行结果:

import math

radius = float(input('Please input radius: '))      #添加float()强制转换即可更正错误

# 求圆的面积

area = math.pi * radius * radius

print('面积的值是: %s' % area)

# 求面积的整数,向下取整

num = math.floor(area)  

# 分别打印面积的整数部分和小数部分,小数点保留6位

print('面积的整数部分: {} 面积的小数部分{:.6f}'.format(num, area-num))


"""
output:
Please input radius: 2
面积的值是: 12.566370614359172
面积的整数部分: 12 面积的小数部分0.566371
"""

5)列表的基本操作

 代码及对应说明:

a = list(input("输入字符串a: "))
b = list(input("输入字符串b: "))

print(a + b)     # 拼接

print(a*3)       # a重复3次

print("{} {}".format(b[0], b[-1]))    # 输出b的始末

print(a[2:5])    # 输出a中索引2~4

print("{},{}".format(len(a), len(b))) # 输出a和b的长度

print("{} {}".format(max(a), max(b))) # 输出a和b的最大元素


"""
output:
输入字符串a: hajskncsda
输入字符串b: akmckacoiqjq
['h', 'a', 'j', 's', 'k', 'n', 'c', 's', 'd', 'a', 'a', 'k', 'm', 'c', 'k', 'a', 'c', 'o', 'i', 'q', 'j', 'q']
['h', 'a', 'j', 's', 'k', 'n', 'c', 's', 'd', 'a', 'h', 'a', 'j', 's', 'k', 'n', 'c', 's', 'd', 'a', 'h', 'a', 'j', 's', 'k', 'n', 'c', 's', 'd', 'a']
a q
['j', 's', 'k']
10,12
s q
"""

6)列表的合并与排序

 代码及对应说明:

# 输入两行以逗号分隔的整数序列
line1 = input("请输入第一行整数序列(以逗号分隔):")
line2 = input("请输入第二行整数序列(以逗号分隔):")

# 将两行数合并到一个列表中并进行排序
numbers = line1.split(',') + line2.split(',')
numbers = list(map(int, numbers))
numbers.sort(reverse=True)

# 按降序输出整个列表
print("合并排序后的列表(降序):", numbers)


"""
output:
请输入第一行整数序列(以逗号分隔):1,2,3,4,5
请输入第二行整数序列(以逗号分隔):4,5,6
合并排序后的列表(降序): [6, 5, 5, 4, 4, 3, 2, 1]
"""

7)列表元素的查找和添加

代码及相关说明: 

# 输入英文新闻
news = input("请输入英文新闻:")

# 如果 "area" 在字符串中存在,则在其前插入单词 "land"
if "area" in news:
    news = news.replace("area", "land area")

# 输出结果
print("处理后的新闻:", news)


"""
output:
请输入英文新闻:He has called on Chongqing, China's largest municipality in terms of both area and population, to bear in mind the principle that cities should be built by the people.
处理后的新闻: He has called on Chongqing, China's largest municipality in terms of both land area and population, to bear in mind the principle that cities should be built by the people.
"""

8)绝对值排序

 代码及相关说明:

# 自定义排序函数
def custom_sort(x):
    return (abs(x), x)

# 输入列表
lst = input("请输入一个列表(以逗号分隔):").split(',')    # 去掉逗号
lst = list(map(int, lst))                              # 转化为int型列表

# 按照绝对值从小到大排序,绝对值相同时负数在前面
sorted_lst = sorted(lst, key=custom_sort)              # 比较绝对值, 但排列原数组

# 输出结果
print("排序后的结果:", sorted_lst)


"""
output:
请输入一个列表(以逗号分隔):5,-3,1,3
排序后的结果: [1, -3, 3, 5]
"""

NUIST__王铁锤__2024年5月30日16:47:10

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值