20181218 2019-2020-2 《Python程序設計》實驗一報告
課程:《Python程序設計》
班級: 1812
姓名:
學號:20181218
實驗教師:王志強
實驗日期:2020年4月11日
必修/選修: 公選課
1.實驗內容
- 熟悉Python開發環境;
- 練習Python運行、調試技能;
- 編寫程序,練習變量和類型、字符串、對象、縮進和注釋等;
- 掌握git技能
2. 實驗過程及結果
Python2與Python3
直接到Python的官方網站下載Python,應選擇自己的操作系統對應版本安裝,Python分2.x和3.x版本,2.x在2020年已經要逐步淘汰。如果同時安裝了Python2和Python3,那么在命令行可以使用py -2和py -3來分別執行。比如,想要使用Python2運行1.py,那么在命令行中輸入py -2 1.py執行即可。
如果需要使用pip工具,那么命令分別為py -2 -m pip install 要安裝的庫和py -3 -m pip install 要安裝的庫。
當然,如果想在任意路徑執行Python,則需要對Python配置環境變量,而Python在安裝時是可以勾選Path的,省去之后自己配置環境變量的麻煩。
同時安裝Python2和Python3的好處是,網絡上仍有許多腳本是由Python2來編寫的,而且如果遇到第三方庫只支持Python2或Python3時,可以選取對應版本的Python來運行。例如我電腦的Python2可以使用gmpy2庫,而Python3可以使用rsa庫,那么兩個版本的Python我都需要。
Pycharm運行和調試代碼
Pycharm建立項目時會形成一個虛擬環境,可以配置項目Python的庫等等。安裝第三方庫的方法為File->Settings->項目->Project Interpreter,點擊右側加號即可。

新建項目后,在項目區域右鍵->New->Python File,新建一個.py文件就可以寫代碼了。運行當前代碼的快捷鍵是光標在代碼區時,CTRL+SHIFT+F10運行。如果想要自己配置運行使用的Python版本,那么點擊右上方的Python圖標->Edit Configurations。

調試的方式是點擊右上角的小蟲子圖標,或者使用SHIFT+F9快捷鍵。可以在代碼左側行號處單擊鼠標左鍵打上斷點,這樣調試時就會在斷點處停下。可以在下方的變量區查看各變量的值。單步運行快捷鍵為F8和F7,其中F8把函數作為單獨的一步,而F7則會進入函數一步步執行。

測試程序
代碼如下:
# -*- coding: utf-8 -*-
# @Time : 2020/4/11 10:59
# @Author : 20181218-sl
# @Email : 1743207528@qq.com
# @File : exp1.py
# @Software: PyCharm
print("helloworld!")
"""變量"""
a = "1"
A = 1 # Python是大小寫敏感的
_a = True # 下划線可以做變量名開頭
a1 = 1.0 # 數字不可以做變量名開頭
A1 = [1]
aA = {1}
Aa ={1:'h'}
Aa1 = (1)
aA1 = (1,4)
"""變量類型"""
print(type(a),end=' ')
print(type(A),end=' ')
print(type(_a),end=' ')
print(type(a1))
print(type(A1),end=' ')
print(type(aA),end=' ')
print(type(Aa),end=' ')
print(type(Aa1))
print(type(aA1))
"""字符串和縮進"""
# 字符串逆序
ori = "helloworld"
re = ori[::-1]
print(re)
# 按位異或、16進制轉字符
str = "]U[du~|t@{z@wj.}.~q@gjz{z@wzqW~/b"
for i in str:
print(chr(ord(i)^0x1F),end='') # 條件語句、循環語句內部分需要縮進4個空格
print('\n')
"""對象"""
class Dio:
holding = "stoneface"
body = "Jonathan's body"
__servant = "vampire servant" # 私有屬性
food = "bread"
def __init__(self):
print("Kono Dio da!!!")
def __eyedark(self): # 私有方法
print("這招以血蒙眼如何!")
def fly(self):
print("I can fly!!!")
def eat(self):
print("食物是面包")
class Kazi(Dio): # 繼承
body = "Everything" # 覆蓋屬性
def __init__(self):
print("究極生物")
def eat(self):
print("食物是吸血鬼") # 方法重寫
kazi = Kazi() # 實例化
print(kazi.holding)
print(kazi.body)
kazi.eat()
kazi.fly() # 繼承方法
代碼的碼雲鏈接為:https://gitee.com/python_programming/sl_20181218/commit/bf896614e3fa3422976193ae1ec273a58f7fc904
包含#和"""兩種模式的注釋,用"""注釋分開四部分,分別是變量、變量類型、字符串和縮進、對象。並未面面俱到,只是在每個方面選取了一點自認為有趣或重要的知識點,一些解釋我都寫在代碼注釋中了。遇到的比較有趣的地方是,a = (1)的變量a的類型為int,而a = (1,2)的變量a的類型為tuple。
git的使用
關於git-Pycharm-碼雲的配置我已經制作視頻上傳,鏈接為:https://www.bilibili.com/video/BV1i7411A7Sp/
配置后,新建的.py文件會自動加入到git中,如果想commit,則使用快捷鍵CTRL+K,如果想push,則使用快捷鍵CTRL+SHIFT+K。

3. 實驗過程中遇到的問題和解決過程
在本次實驗中並未遇到問題,很多問題是以前遇到並解決的,現在都已作為定論形成在實驗內容中,比如Windows同時安裝Python2和Python3的兼容和使用、gmpy2庫的安裝、git的配置等等。廣泛地講,解決問題的過程都是搜索大量博客,多次嘗試,最終找到自己問題的解決方法。
其他(感悟、思考等)
對於Python語言
Python非常簡潔方便,也具有大量第三方庫供使用,使得Python成為一個很好的CTF腳本工具,熟練掌握Python語法、Pycharm的使用對做題很有幫助。
對於解決問題
在Python學習中會遇到很多問題,事實上,在計算機實踐課程中都是如此。在網上查找自己的問題基本可以解決所有問題,這是一個自學和提高的過程,但有時需要耐心和嘗試,因為問題既有共性又有特性。掌握自主解決問題的能力是極為重要的。
