20214201 2019-2020-2 《Python程序设计》实验一报告
课程:《Python程序设计》
班级: 2142
姓名: 刘嘉铭
学号: 20214201
实验教师:王志强
实验日期:2022年3月17日
必修/选修: 公选课
1.实验内容
1.熟悉Python开发环境;
2.练习Python运行、调试技能;
3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;
4.掌握git技能。
2. 实验过程及结果
1.熟悉Python开发环境;
a)安装Python3环境
- 通过Mircosoft Store安装
- 通过Python官网安装 https://www.python.org/
b)安装PyCharm软件 https://www.jetbrains.com/pycharm/download/#section=windows
成功启动PyCharm编译环境!
2.练习Python运行、调试技能;
a)CMD运行、调试
-
运行
-
调试
在Python交互环境中启用调试:在源文件要进入调试的地方输入如下代码再运行即可:点击查看代码
1 import pdb 2 pdb.set_trace()
b)IDLE运行、调试
- 运行
- 调试
- 在编译器中想调试的语句上增加或删除断点。在该语句上右键选择Set Breakpoint, Clear Breakpoint
- 运行要调试的文件(Fn+F5),在出现的Shell窗口中,点击菜单栏Debug栏中的Debugger,出现调试控制窗口(如下图)
Go:跳至断点
Step:进入函数
Over:单步执行
Out:跳出函数
Quit:结束调试
中间白色框内为正在执行的语句
下部Locals为局部变量值
c)PyCharm运行、调试
- 运行(Ctrl+Shift+F5)
- 进入调试模式
- 方法一:
输入if __name__
,PyCharm会自动识别并在左侧行数栏中显示绿色箭头,右键绿色箭头则可进入调试模式。
- 方法二:
无代码空白处直接右键选择“调试”。 - 方法三:
在最上方菜单栏出选择“运行”栏中的“调试”选项。
- 方法一:
- 断点调试
点击行数栏右侧位置出现红点,并使整行红色高亮显示,即设置好断点。
使用调试模式运行程序。
对程序进行调试操作,调试完毕后现实如下画面:
其他断点调试相关操作与内容详见参考资料的拓展。
3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;
(1)编写程序
a)“Hello,World”:
点击查看代码
print("Hello,World")
b)猜数游戏(升级版)
点击查看代码
import random
ans = random.randint(int(input("Left side of range:")),int(input("Right side of range:")))
bat = int(input("Input the times you want to try:"))
x = int(input("Please guess a number:"))
cnt = int(1)
for i in range(1,bat):
if x == ans:
print("You Win! The random number is ",ans)
print("\n")
print("You have tried",cnt)
break
if x<ans:
print("Too Small")
x = int(input("Please try again:"))
print("Residue time: ",int(bat-i-1))
cnt = cnt+1
continue
elif x>ans:
print("Too large")
x = int(input("Please try again:"))
print("Residue time: ",int(bat-i-1))
cnt = cnt+1
continue
if cnt == bat:
print("You lose!")
print("The random number is: ",ans)
(2)变量和类型、对象
Python3中有六个标准的数据类型:
Number(数字)、String(字符串)、Tuple(元组);
List(列表)、Set(集合)、Dictionary(字典)。
前三者为不可变数据,后三者为可变数据。
可以使用type()和isinstance()函数来检测数据类型。
- Number(数字)
含int(整数)、float(浮点数)、bool(布尔数)、complex(复数)。
点击查看代码
a = 1 # 整数
b = 1.1 # 浮点数
c = True # 布尔数
d = 1+1j # 复数
print(type(a), type(b), type(c), type(d))
数值运算法则:
加法、减法、乘法、除法(整除)、取余、乘方、位运算等。
点击查看代码
x, y = 5, 2 # 赋值语句
print( x + y ) # 加法
print( x - y ) # 减法
print( x * y ) # 乘法
print( x / y ) # 除法(输出浮点数)
print( x // y ) # 除法(输出整数)
print( x % y ) # 取余
print( x ** y ) # 乘方
print( x | y ) # 或运算
print( x & y ) # 与运算
print( x ^ y ) # 异或运算
(3)字符串
储存字符,储存位从0位为首位,-1位末位。
如储存一个str = 'ABCDEFG'字符串,则str[0]='A',str[1]='B',str[-1]='G'。
点击查看代码
str = 'Besti'
print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:4]) # 输出从第三个开始到第四个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # 输出字符串两次,也可以写成 print (2 * str)
print (str + "UPUP") # 连接字符串
(4)序列
a)列表List
序列是 Python 中最基本的数据结构。
序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。
点击查看代码
# 列表
list1 = ['Monday', 'Tuesday', 'Wednesday', 'Friday', 'day']
# 访问列表
print(list1[0])
print(list1[-1])
print(list1[0:2])
# 遍历列表
for i in list1:
print(i)
# 修改列表
print("原来第四个元素:",list1[3])
list1[3] = 'Thursday'
print("现在第四个元素:",list1[3])
# 删除列表某个元素
print("原始列表:",list1)
del list1[4]
print("现在列表:",list1)
# 更新列表
list1.append('Friday')
print("更新后列表",list1)
b)元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号 ( ),列表使用方括号 [ ]。
点击查看代码
# 定义元组(可以为空元组)
tup1 = (1,2,3,4,5)
tup2 = (1,6,7)
tup3 = ()
# 访问元组
print(tup1[1])
# 遍历元组
for i in tup1:
print(i)
# 修改元组
tup3 = tup1 + tup2
# 删除元组
del tup3
c)字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
点击查看代码
# 定义字典
dic = {'name':'ljm', 'number':20214201, 'test':123}
# 打印字典
print(dic)
# 访问字典
print(dic['number'])
# 修改字典
dic['test'] = 456
# 删除字典(元素)
del dic['test']
print(dic)
# 清空字典
dic.clear()
print(dic)
d)集合
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合。
点击查看代码
# 定义集合
set1 = {1,2,3,4,5}
set2 = {1,3,5,7,9}
set3 = {0,2,4,6}
# 打印集合
print("打印set1:",set1)
print("打印set2:",set2)
print("打印set3:",set3)
# 修改集合
set3.add(8)
print("打印set3:",set3)
# 删除集合
set2.remove(9)
print("打印set2",set2)
# 计算集合元素个数
print("计算set1元素个数",len(set1))
# 判断某元素是否在集合内
if 1 in set3:
print("1在set3")
else:
print("1不在set3")
# 集合之间的关系
print("set1-set2:",(set1-set2))
print("set1&set2:",(set1&set2))
print("set1|set2:",(set1|set2))
print("set1^set2:",(set1^set2))
(5)缩进和注释
上文代码中包含了缩进和注释的相关内容。
缩进:使代码更加富有逻辑性、美观性、易读性。
注释:便于自己和他人阅读代码时了解该行(段)代码的作用。
4.掌握git技能。
通过将PyCharm的代码推送到Gitee上实现代码开源、云储存、云协作等操作。
-
新建仓库
-
配置仓库文件
-
配置Git环境(初始化)
-
在PyCharm中配置Git和Gitee环境
-
提交并推送文件
由于在配置时出现了一些问题,经过修改后得以解决,将仓库名和文件名进行了更改,但不影响文件上传和修改。
3. 实验过程中遇到的问题和解决过程
-
问题1:PyCharm未激活
-
问题1解决方案:通过万能的网络搜索激活码输入激活码后进行激活。
-
问题2:Git文件提交选项灰色,无法选择提交
-
问题2解决方案:新建项目后问题得以解决。目测是在配置文件时,上传Github与Gitee发生了矛盾。
-
问题3:Git文件提交后,Gitee码云仓库不显示
-
问题3解决方案:目测是上传到了Github中。在设置中的插件栏里搜索Gitee安装Gitee插件,重启PyCharm,在插件里登录Gitee账号。在Gitee网站上安装SHH公钥。在PyCharm最上方菜单选项栏中选择VCS(GIT),Gitee,Share Project on Gitee,新建仓库后,选择上传文件,提交文件,推送文件。
其他(感悟、思考等)
由于本人具有浅薄的编程基础(C++),对于理解上述Python基本概念上并无太大障碍,唯一遇到困难的就是配置gitee环境时的相关问题(已解决)。
Python相对于C++的语法更加简单,并且序列的四个类型简化了变量的储存方式,便于程序更高效的运行。
(若精力有限将更新Pyhton与C++部分基本语法的对比)