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 = " 人生 如 逆旅\n你亦 是行人\n"
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 ("\n")
#字符段的截取
print (str1[3])
print (str1[2:8:2])
print (str1[::3])
try:
print (str1[30])
except IndexError:
print ("字符不存在")
print ("\n")
#字符串的分割
str3 = str2.split()
print (str3)
str3 = str2.split(' ',)
print (str3)
str3 = str2.split(' ',2)
print (str3)
print ('\n')
#字符串的合並
list1 = ['wyn','wbh','cxt','zjh']
str3 = "\t@".join(list1)
print ('@'+str3)
str3 = " ".join('abcdefg')
print (str3)
print ('\n')
#字符串的檢索
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 ('\n')
#字母的大小寫轉換
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 ('\n')
#字符的解碼
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的縮進極為嚴格,當代碼量大的時候如果出現縮進錯誤,程序有極大可能是不會報錯的,但是邏輯是錯誤的,這就需要代碼的編寫者在寫代碼時足夠的細心或者擁有足夠的耐心利用單步調試來糾正代碼中隱藏的邏輯錯誤。