20214201 實驗一 《Python程式設計》實驗報告
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++部分基本語法的對比)