广 广 州 商 学 院
实验报告册(软件)
信息技术与工程学院软件工程专业 2019 年级 4 班
2020
- 2021 学年第
1
学期
课程名称:
python 程序设计
姓
名:
学
号:
目 目
录 实验一初识 python……………….…………………………………... 2 实验二 ………………………………………………………………... 5 实验三 ………………………………………………………………… 8 实验四 ……………………………………………………………….. 11 实验五 ……………………………………………………………….. 14 实验六 ……………………………………………………………….. 17 实验七 ……………………………………………………………….. 20 实验八 ……………………………………………………………….. 23 实验九 ……………………………………………………………….. 26 实验十 ……………………………………………………………….. 29 实验十一 …………………………………………………………….. 32 实验十二 …………………………………………………………….. 35
1 广 广 州 商 学 院 实验报告(第 1 次)
实验名称 初识 python
实验时间:
2020.9.9
一.
实验目的
对 python 有初步的了解 二.
实验内容 1. 完成教材例题 ex0101~ex0104.p 2. 计算圆椎体体系积 3. 计算存款收益 4. 使用 Python 帮助文档中的函数实现计算
三.
源程序及主要算法说明
2
3 四.
主要问题和解决方案 对 python 的语法尚未能够很好的使用,通过查阅书籍及上网寻找等方式将问题解决
五.
测试数据及结果
六.
心得体会与自我评价 通过这次的实验能够充分的了解到 python 的使用方法,能够了解到python 与 java 的区别之处。
七.
教师评分
4 广 广 州 商 学 院 实验报告(第 2 次)
实验名称:
Python 基础知识
实验时间:2020.9.18
一 一. 实验目的 (1)
充分掌握字符串的处理方法 (2)
能够熟悉地掌握字符串中的函数 (3)
能够熟悉地设计 python 程序的流程 二.实 验内容 实验 1:
:
调试完成教材例题 。
要求:掌握代码缩进、注释、数据类型、运算符等基础知识。
验
实验 2 :分析下面各语句的输出结果。
。
01 >>>0.2+0.4==0.6 02 >>>round(0.2+0.4,1)==0.6 03 >>>0xAF 04 >>>9**0.5 05 >>>-10%-3 06 >>>-3**2 07 >>>4.0+3 08 >>>12 and 34 提示:
(1)浮点数运算存在不确定的尾数,测试 0.2+0.4 的结果是
5 0.6000000000000001 (2)0x 开头表示这是一个十六进制整数。
(3)**表示幂运算,指数如果是小数,表示根式运算,结果为浮点类型数据。
实验 3 :阅读并解析程序。
要求:两个变量的值互换。若 x 值为 3,y 值为 4,则互换后 x 的值为 4,y 的值为 3。程序 代码如下。
01 #demo0201.py 02 x=eval(input("请输入 x 的值:")) 03 y=eval(input("请输入 y 的值:")) 04 print("输入值:x=",x,"y=",y) 05 t=x 06 x=y 07 y=t 08 print("互换后:x=",x,"y=",y) 提示:两数互换算法,首先 t=x 语句将 x 的值存于临时变量 t 中,然后 x=y 语句将 y 的值赋 予 x,最后 y=t 语句将 t 中保存的 x 的原始值赋予 y,从而实现 x 和 y 数值的互换。
也可以使用同步赋值语句实现两数互换 x,y=y,x 实验 4 :编写程序,计算并输出方程的实数根。
6 要求:输入一元二次方程 ax 2 +bx+c=0 的参数 a、b、c,计算并输出方程的实数根(结果保 留两位小数)。若方程没有实数根,输出“方程没有实数根”。
提示:
p=b*b-4*a*c if p>0: x1=(-b+math.sqrt(p))/(2*a) x2=(-b-math.sqrt(p))/(2*a) 三. 源程序及主要算法说明 四.主要问题和解决方案 在实验过程中存在一些问题,比如对函数的使用方法掌握地不是很熟练,在编写代码时没有注意代码的缩进,导致花费了很多时间,在后面通过查找书籍,和上网查找资料的方式将问题解决。
五 五. 测试数据及结果
7
8
9 六.
心得体会与自我评价 通过本次实验,充分了解了字符串的处理方法和字符串函数的使用,能够很快速地反应该用什么函数,在编写代码过程中也能更加细心地去编写
七.
教师评分
10
广 广 州 商 学 院 实验报告(第 3 次)
实验名称:
Python 中的字符串
实验时间:
2020.9.19
一.
实验目的
充分认识 python 中字符串的使用 二.
实验内容、 实验 1 :调试完成教材例题 。
实验 2 :分析代码运行结果。
要求:阅读下面的语句,分析其功能。代码如下 >>> first_name="chris" >>> last_name="Wilson" >>> full_name=first_name+" "+last_name >>> print("Hello, "+full_name.title()+"!"+" "*3+"Nice to meet you.") >>> language="python" >>> print(language.upper()) >>> print(language) >>> product_num="201906C15M" >>> print(product_num[6]) >>> print(product_num[-1])
>>> print(product_num[4:6])
11 >>> print(product_num[:4]) >>> print(product_num[-3:-1]) >>> print("m" in product_num)实验 3 :分析代码运行结果。
要求:阅读下面的程序代码,分析其功能。
01 >>> name="Evan" 02 >>> money=45.7803 04 >>> number=10 05 >>> print("%10s paid $%-6.1f for %d apples."%(name,money,number)) 06 07 >>> print("{0:*^10} paid ${1:<6.1f} for {2:d} apples".format(name, money,number)) 08 提示:(1)第 5 行,采用格式化操作符%对输出字符串进行格式化,用法是将跟在字符串后 面的%后的值插入对应的有格式控制符的字符串中。其中,格式控制符%s 用来格式化字符 串;%f 用来格式化浮点数,可指定小数点后的精度;%d 用来格式化十进制整数。例如,%-6.1f 对变量 money 进行格式化,6 为宽度,.1 为小数位数,-表示左对齐。
(2)第 7 行,采用 str.format()方法对输出字符串进行格式化。模板
12 字符串 str 中可包括 4 多个{}表示的占位符,与 format()方法中的对应参数进行匹配。模板字符串的{}内部可以使 用{<参数序号>:<格式控制标记>}的方式来对关联参数的输出格式进行控制。例如,{0:*^10} 中,0 为参数序号,10 为宽度,*为填充字符,^表示居中对齐。
验 实验 4 :编程实现英文句子反转功能。
要求:给定一个只包括字符和空格的句子,将句子中的单词位置反转后输出。输入的句子占 一行,各个单词之间以空格分隔。例如,输入 this is a test,输出 test a is this。
提示:(1)将输入的字符串用 split()函数分隔,转换为列表,将列表反转后再生成字符串。
(2)使用 str[::-1]”将列表反转。
(3)使用“" ".join(a)”函数,功能是以空格为分隔符,将列表 a 中的所有元素合并为一 个新的字符串。
13 三.
源程序及主要算法说明 无
四.
主要问题和解决方案 无法很熟练地使用字符串的操作方法,通过查阅书籍和上网查找资料的方法逐渐认识操作方法
五.
测试数据及结果
14
15
16 六.
心得体会与自我评价 通过本次实验,能够了解字符串的使用方法,同时也是很好的明白如何更快的编译出自己想要的字符串编码
七.
教师评分
17 广 广 州 商 学 院 实验报告(第 4 次)
实验名称:Python 程序的流程
实验时间:
2020.9.23
一.
实验目的
充分了解 Python 程序的流程的结构 二.
实验内容
实验 1 :编程计算 1 ~100 偶数的和
实验 2 :编程计 算字符的个数 实验 3:
:
编程计算序列和。
实验 4:
:
阅读程序,分析下面程序完成的功能。
实验 5:
:个 编程输出一个 m 行 行 n 列的字符矩形。
三.
源程序及主要算法说明 无
四.
主要问题和解决方案 对于如何建造流程结构不是很了解,通过与同学讨论和上网查阅资料,解决了问题
18 五.
测试数据及结果
19 六.
心得体会与自我评价 通过本次实验充分的明白了 python 的流程结构
七.
教师评分
20
广 广 州 商 学 院 实验报告(第 5 次)
实验名称:
Python 的组合数据类型
实验时间:
2020.9.30
一.
实验目的
通过本次实验能够熟练地掌握 python 的组合数据类型 二.
实验内容
实验 1:
:
完成教材例题。
实验 2:
:
编写程序,模拟栈操作。
实验 3:
:
编写程序,完成字典操作。
实验 4:
:
列表中的数据统计的实现。
实验 5:
编写程序,计算和、平均值、方差 三.
源程序及主要算法说明 无
四.
主要问题和解决方案 在本次实验中,遇到了对数据类型的错误使用,导致编程出错的问题,通过查找书本和与同学讨论解决了问题
五.
测试数据及结果
21
22
23
24
25
六.
心得体会与自我评价 通过本次实验,从错误中发现了问题,并解决了问题,明白了数据类型如何正确使用
七.
教师评分
26 广 广 州 商 学 院 实验报告(第 6 次)
实验名称:
用函数实现代码复用
实验时间:
2020.10.9
一.
实验目的 了解并掌握函数的定义、调用及参数传递,以及一些内置函数的应用 二.
实验内容
实验 1 :编程求两点之间的曼哈顿距离。
要求:主程序代码如下,实现函数 abs()。
01 #主程序 02 x1,y1=eval(input("输入 A 点坐标,以逗号分隔:")) 03 x2,y2=eval(input("输入 B 点坐标,以逗号分隔:")) 04 mht=abs(x1-x2)+abs(y1-y2) 提示:给出平面上两个点的坐标,平面上点 A(x1,y1)与点 B(x2,y2)的曼哈顿距离为:
|x1-x2|+|y1-y2|。
验 实验 2 :编写函数,计算某班级学生考试的平均分。
。
要求:(1)班级共 10 人,计算平均分时可以根据全部人数或者实际参加考试人数计算。
(2)完成 avgScore()函数。
01 #demo0503.py 02 def avgScore(scores,n=10): 03 …… …… 07 #主程序 08 scores=[90,88,76,45,77,95,66,88,91] 09 print("按班级人数计算的平均值:{:.2f}".format(avgScore(scores))) 10 print("按考试人数计算的平均值:{:.2f}".format(avgScore(scores,len (scores)))) 提示:
(1)定义函数 avgScore()时,参数 n 为默认参数,其默认值为 10。在调用函数 avgScore() 时,如果没有传入 n 的实参,则 n 取默认值;如果传入 n 的实参,则函数会使用传递给 n 的新值。
(2)函数 avgScore()用于计算考试成绩的平均分,接收列表类型的参数 scores,遍历列 表 scores,计算元素的累加和 s,返回 s/n 的值。
验 实验 3 :编写函数,利用可变参数计算一组数的最大值。
提示:部分代码如下,请补全代码。
27 01 #demo0504.py 02 def maxnum(*nums): 03 …… 04 05 06 07 08 #主程序 09 print(maxnum(-1,34,-9,56)) 10 print(maxnum(1,4,6,95,3,78)) 验 实验 4 :分析 程序的功能及 程序中变量的作用域。
要求:程序代码如下,分析程序中变量 s、ls 的作用范围。
8 01 #demo0507.py 02 def addLetter(a): 03 global s 04 s+=1 05 ls.append(a) 06 return 07 #主程序 08 ls=["G","g"] 09 s=0 10 while True: 11 x=input("请输入要加入列表的字符:") 12 addLetter(x) 13 if input("继续吗(y/n):")=="n": 14 break 15 print("加入字符后的列表:",ls) 16 print("增加的新元素个数为:",s) 提示:函数中的变量默认为局部变量,作用域为函数内部,即使与函数外部变量同名,也不 会影响函数外部变量的值。而用 global 声明的变量为全局变量,作用域为整个程序。列表等 组合数据类型作为一种特殊的参数,如果在函数内部没有重新定义,则默认为全局变量。
28 三.
源程序及主要算法说明
6.1
def get_abs(mht):
return abs(mht) x1,y1=eval(input("输入 A 点坐标,以逗号分隔:")) x2,y2=eval(input("输入 b 点坐标,以逗号分隔:")) mht=abs(x1-x2)+abs(y1-y2) print(mht)
6.2
#dome0503.py """ 定义函数
avgScore() 时,参数
n 为默认参数,其默认值为
10 。在调用函数
avgScore() 时,如果没有传入
n 的实参,则
n 取默认值;如果传入
n 的实参,则函数会使用传递给
n 的新值。
""" def avgScore(scores,n=10):
s=0 #初始化 s
for i in range(len(scores)):
#遍历从 0 开始的 scores
s+=scores[i]
#scores;里面的元素相加等于 s
return s/n
#返回值为 s/n
scores = [90, 88, 79, 45, 77, 95, 66, 88, 91] print("按班级人数计算的平均值:{:.2f}".format(avgScore(scores))) print("按考试人数计算的平均值:{:.2f}".format(avgScore(scores,len(scores)))) 6.3 #dome0504.py def maxnum(*nums):
#定义最大值函数
m=nums[0];
#初始化个数
for i in nums:
#遍历 num 中的 i
if i>m:
#如果 i 大于最大值则 i 为最大值
m=i
return m
#返回值为最大值
29
print(maxnum(-1,34,-9,56)) print(maxnum(1,4,6,95,3,78)) 6.4 #dome0507 def addLetter(a):
global s
#全局变量
s+=1
ls.append(a) #局部变量
return
ls=["G","g"] s=0 while True:
x=input("请输入要加入列表的字符:")
addLetter(x)
if input("继续吗{y/n}:")=="n":
break print("加入字符后的列表:",ls) print("增加的新元素个数为:",s)
四.
主要问题和解决方案 对函数的调用及参数的传递没有理解明白,在做实验过程中,通过...
相关热词搜索: 程序设计 实验 报告版权所有:演说范文网 2010-2025 未经授权禁止复制或建立镜像[演说范文网]所有资源完全免费共享
Powered by 演说范文网 © All Rights Reserved.。京ICP备20027742号