20183122 2019-2020-2 《Python程序设计》实验一报告
课程:《Python程序设计》
班级: 1831
姓名: 陈介
学号:20183122
实验教师:王志强
实验日期:2020年4月11日
必修/选修: 公选课
1.实验内容
1.熟悉Python开发环境;
2.练习Python运行、调试技能;
3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;
4. 掌握git技能
2. 实验过程及结果
1)熟悉Python开发环境;
现在python版本已经更新到了3.8.2版本,我们安装python后可以在cmd控制台中输入"python"来查看版本以及编写python程序,此时是写一行执行一行;集成开发环境IDLE提供更加强大的功能,可以使用python自带的python shell也可以使用pycharm等IDLE;也可以在控制台运行.py结尾的文件来运行python程序。
2)练习Python运行、调试技能;
可以通过在cmd控制台中输入路径来运行python程序,也可以直接在IDLE中运行程序
通过设置断点来进行单步调试:
运行到断点处,然后一句一句地往下运行程序,在调试窗口中可以看到当前存在的所有变量的值
如果单步调试进入了循环,可以直接跳出循环,节省时间
3)编写程序,练习变量和类型、字符串、对象、缩进和注释等;
python的变量类型是比较灵活的,不像C语言一样在定义之初就固定了不可改变
a = 123
b= '456'
c = input("请输入数字:")
d = int(input("请输入数字:"))
a={}
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(a))
运行结果为:可以看到a的类型在运行过程中改变了
python的字符串类型的操作也是十分灵活的,可以直接进行+或*操作,python同时还提供了相当量的函数使我们能搜索子字符串,拼接字符串,裁剪字符串等,具体我通过下面的程序来展示
str1 = "人生苦短,我用python!"
str2 = " 人生 如 逆旅
你亦 是行人
"
str_en = "Life is a journey, you are a pedestrian."
set1 = {1:[2,'you'],2:12,3:'me'}
print (type(set1))
print (zip(set1))
#字符串的长度
print (len(str1))
print (len(str1.encode("utf-8")))
print (len(str1.encode("GBK")))
print ("
")
#字符段的截取
print (str1[3])
print (str1[2:8:2])
print (str1[::3])
try:
print (str1[30])
except IndexError:
print ("字符不存在")
print ("
")
#字符串的分割
str3 = str2.split()
print (str3)
str3 = str2.split(' ',)
print (str3)
str3 = str2.split(' ',2)
print (str3)
print ('
')
#字符串的合并
list1 = ['wyn','wbh','cxt','zjh']
str3 = " @".join(list1)
print ('@'+str3)
str3 = " ".join('abcdefg')
print (str3)
print ('
')
#字符串的检索
print (str2.count('人',0,5))
print (str2.count('人'))
print (str2.find('人',0,5))
print (str2.find('人'))#子字符串首次出现的位置
print (str2.rfind('人',0))
print (str2.rfind('人'))
print (str2.find('%'))
print ('人' in str2)
print ('$' in str2)
print (str2.index('人',0,5))
print (str2.index('人'))#子字符串首次出现的位置
print (str2.rindex('人',0))
print (str2.rindex('人'))
print (str2.startswith('人'))
print (str2.startswith('生'))
print (str2.startswith('生',1))
print (str2.endswith('人'))
print (str2.endswith('行'))
print (str2.endswith('行',0,13))
print ('
')
#字母的大小写转换
print (str_en.upper())
print (str_en.lower())
#去除字符串中的特殊字符
print (str2.strip())
print (str2.lstrip())
print (str2.rstrip())
#字符的编码
byte = str1.encode('GBK')
print (byte)
print (str1.encode("UTF-8"))
print ('
')
#字符的解码
print (byte.decode("gbk"))
部分运行结果为
python是面向对象的程序设计语言,所以在Python中创建一个类和对象是很容易的,而且python中类和对象的使用也比较灵活,类可以嵌套,支持继承等,下面是一些实例
class mate:
name = "佚名"
age = 18
def __init__(self):
print('姓名:',mate.name,'年龄:',mate.age)
mate.school = "besti"
wyn = mate()
print (wyn.school)
父类和子类以及继承问题如下代码所示
class student:
stage = None
name = '佚名'
gender = None
def __init__(self,in_stage,in_name,in_gender):
student.stage = in_stage
student.name = in_name
student.gender = in_gender
def _load(self):
print ("姓名:",student.name,"学历:",student.stage,"性别:",student.gender)
class undergraduate(student):
stage = "大学"
age = 0
prise = []
def __init__(self,in_age):
undergraduate.age = in_age
def _load(self):
print ("姓名:",undergraduate.name,"学历:",undergraduate.stage,"性别:",undergraduate.gender,"年龄:",undergraduate.age,"获奖:",undergraduate.prise)
stu1 = student("高中","赵四","男")
stu1._load()
stu2 = student('大学','张三','男')
stu2._load()
python的既可以单行注释,也可以多行注释,单行注释时在注释内容前打“#”
多行注释时把要注释的内容用两个'''或"""括起来,如下所示
#这是一行单行注释
"""
这是多行注释的第一行
这是多行注释的第二行
下面可能还有好多行
"""
4)掌握git技能
a.码push到云端之前,我们需要新建一个项目来对应码云中的一个仓库;
b.然后我们在之前新建的项目中编好代码后需要先commit,需要添加一定的说明养成良好的习惯,方便日后还能读懂代码的目的;
c.然后就可以按照下图所示路径将代码push到云端了。
3. 实验过程中遇到的问题和解决过程
a.变量命名占用了python的保留字
解决办法:修改变量名称
b.在定义类的新的方法时,入口处有两个参数,在调用时没有加上这两个参数,导致程序报错
解决办法:补上参数,在定义方法的下一行添加注释,在pycharm环境下,下次再调用此方法会弹出注释提示入口参数
实验体会
python绝对可以说得上是一种简洁直白的程序设计语言,提供了许多功能强大的函数与第三方库,我们可以很方便地调用它们;近乎伪码的语句体系,使代码阅读者能很方便地读懂代码作者的逻辑与数据的处理流程。不过python的缩进极为严格,当代码量大的时候如果出现缩进错误,程序有极大可能是不会报错的,但是逻辑是错误的,这就需要代码的编写者在写代码时足够的细心或者拥有足够的耐心利用单步调试来纠正代码中隐藏的逻辑错误。