20213324 萬庭旭 實驗四 Python綜合實踐
學號20213324《python程式設計》實驗四報告
課程:《Python程式設計》
班級:2133
姓名:萬庭旭
學號:20213324
實驗教師:王志強
實驗日期:2022年5月19日
必修/選修: 公選課
1.實驗內容
Python綜合應用:爬蟲、資料處理、視覺化、機器學習、神經網路、遊戲、網路安全等。
2.實驗要求
在華為ECS伺服器(OpenOuler系統)和物理機(Windows/Linux系統)上使用VIM、PDB、IDLE、Pycharm等工具程式設計實現。
3.實驗程式過程
3.1簡單猜拳小遊戲
遊戲目標:電腦隨機出拳,我們直接選擇出什麼
小遊戲可以拆解為:雙方出拳→雙方亮拳(列印一下)→判斷勝負
3.1.1雙方出拳
我們要讓雙方選擇出拳,才能判斷勝負。
我們可以設定變數computer_choice代表電腦的出拳選擇,設定變數user_choice代表自己的出拳選擇。
電腦的出拳,我們可以使用random.choice()來隨機選擇;我們的出拳,可以手動輸入我們出拳的型別。
•判斷下輸入:當輸入的內容不是石頭剪刀布時,電腦會提醒'輸入有誤,請重新出拳'。
•判斷的語句為:while a not in list1,即當元素 a 不在列表 list1。
試執行:
第一種結果:
第二種結果:
3.1.2雙方亮拳
自己和電腦已經對要出的拳進行了選擇,接下來,我們需要知道雙方的出拳型別。
•使用print()函式補充亮拳的結果。
試執行
3.1.3判斷勝負
在前面兩步,電腦和你已經選擇完出拳的型別並亮拳後,只差最後一步:根據結果判斷勝負。
• 兩方出拳一致:平局
• 你出石頭,電腦出剪刀;你出剪刀,電腦出布;你出布,電腦出石頭:你獲勝;
• 其他情況:你輸了。
試執行
3.1.4加入迴圈
最終程式碼:在外部加了一個while……迴圈,只要不讓它結束,就可以一直玩下去。
試執行
4.在華為esc伺服器上執行
4.1.1通過WinSCP上傳檔案到ECS伺服器
4.1.2通過PuTTY執行程式
執行結果:
5.原始碼
`import random
#出拳 while True: punches = ['石頭','剪刀','布'] computer_choice = random.choice(punches) user_choice = '' user_choice = input('請出拳:(石頭,剪刀,布)') #請玩家輸入選擇 while user_choice not in punches: # 當玩家輸入錯誤,提示錯誤,重新輸入 print('輸入有誤,請重新出拳') user_choice = input() # 亮拳 print('——戰鬥過程——') print('電腦出了:%s' % computer_choice) print('你出了:%s'% user_choice) # 勝負 print('——結果——') if user_choice == computer_choice: #使用if進行條件判斷 print('平局!') elif (user_choice == '石頭' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布')or (user_choice == '布' and computer_choice == '石頭'): print('你贏了!') else: print('你輸了!') a1 = input('要繼續遊戲嗎,請輸入n退出,輸入其他繼續:') if a1 == 'n': print('\n【結束遊戲】') break
`
6.實驗中遇到的問題與解決方案
1.剛開始不知道怎樣在putty上執行程式碼
解決方案:百度搜索相關方法
7.全課課程總結
在選課前就瞭解到python是一門非常強大有潛力的高階語言,經過多年發展,越來越受歡迎,在程式設計上發揮著越來越大的作用,相比於C語言更加簡潔,使用起來更加方便,於是吸引我選擇了這門課。不知不覺課程已經接近尾聲,但是說實話,自己沒有學到太多東西,並不是自己天賦問題,也不是老師的教學有問題,相反,老師講的很好,只是因為自己過於慵懶。當自己沉靜下來仔細去鑽研時,才發現Python除了煩人的語法,改不完的Bug,還有成功編譯出屬於自己的程式的那份喜悅,希望自己能更熟練地去掌握運用它。選修課雖然結束了,但程式設計還有很長的路要走。學習程式設計不是一日之功,需要每天投入時間學習,也不可紙上談兵,需要自己親手操作,不動手就不會發現問題,動手之後印象才會更深刻。最後感謝王志強老師的教學,祝老師的課越來越好!