Mooc的Python3學習筆記

文章目錄

  • 一些優秀的博主
  • 僅供自己查閱!!!
  • 首先是掌握基本語法!
  • 內置的運算符函數
  • 函數模塊補充知識點
    • pass
    • 函數返回多個值
  • 關于默認參數使用的注意事項
  • 可變參數的使用方法
  • 天天向上代碼
  • 單元測試
  • 異常處理代碼
  • 單例模式
  • Python 中的 if __name__ == '__main__' 該如何理解
  • python環境搭建和pycharm的安裝配置及漢化(零基礎小白版)
  • PyCharm和git安裝教程
  • 爬蟲
    • 簡單例子1
    • 簡單例子2
    • BeautifulSoup的使用1
    • BeautifulSoup的使用1

一些優秀的博主

http://blog.konghy.cn/
廖雪峰大牛
Python3教程

僅供自己查閱!!!

首先是掌握基本語法!

先來幾個代碼

str1 = input("請輸入一個人的名字:")
str2 = input("請輸入一個國家的名字:")
print("世界這么大,{}想去看看{}:".format(str1,str2))
  • 1到N求和
n = input("請輸入一個整數:")
sum = 0for i in range(int(n)):sum += i + 1
print("1到N求和的結果:",sum)
  • 乘法口訣表
for i in range(1,10):for j in range(1,i +1):print("{}*{}={:2}  ".format(j,i,i*j),end = '')print('')
  • 打印1! + 2! + 3! + …10!
sum , tem = 0, 1
for i in range(1,4):print("{}".format(i))
for i in range(1,4):tem = i * temsum += tem
print("{}".format(sum))
  • 猴子吃桃問題!
n = 1
for i in range(5,0,-1):n = (n + 1) << 1
print(n)
  • 攝氏度和華氏度溫度轉換
TempStr = input("")if TempStr[0] in ['F','f']:C = (eval(TempStr) -32 ) /1.8print("{:.2f}C".format(C))
elif TempStr[0] in ['C','c']:F = 1.8 * eval(TempStr) + 32print("{:.2f}F".format(F))
else:print("輸入格式錯誤")
  • 轉義字符處理方法
    r’‘表示’'內部的字符串默認不轉義
# -*- coding: utf-8 -*-
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!'''

可以看看這幾個輸出結果,在理解一下轉義字符吧

Hello, world 
Hello, 'Adam' 
Hello, "Bart" 
Hello, 
Lisa! 

內置的運算符函數

  • 這個要看,比較常用,掌握基本的意義
    https://www.cnblogs.com/xiao1/p/5856890.html

函數模塊補充知識點

加入定義了一個函數,我們先不寫,但是其他模塊寫好了,要跑一下看看效果,可是這個函數沒有內容編譯器會報錯這個時候有一個概念

pass

  • 空函數
def nop():pass

這樣子讓代碼是可以順利編譯運行的

if age >= 18:pass

函數返回多個值


def TestReturnValue(a, b, c, d):return a + b, c * dnum1, num2 = TestReturnValue(1, 2, 3, 4)print(num1, num2)r = TestReturnValue(1, 2, 3, 4)
print(r)

運行結果

3 12
(3, 12)Process finished with exit code 0

原來返回值是一個tuple!但是,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應的值,所以,Python的函數返回多值其實就是返回一個tuple,但寫起來更方便。《廖雪峰老師解釋》

關于默認參數使用的注意事項

  • 如果你沒有第一種寫法,就會出現如下輸出所示的錯誤。本來指向給你的輸出后面加一個‘END’,但是每次調用就會多一個’END’。
def add_end_Right(L=None):if L is None:L = []L.append('END')return Ldef add_end_False(L=[]):L.append('END')return Lprint(add_end_Right())
print(add_end_Right())
print(add_end_Right())print(add_end_False())
print(add_end_False())
print(add_end_False())
  • 輸出結果

['END']
['END']
['END']['END']
['END', 'END']
['END', 'END', 'END']

可變參數的使用方法

def Calculation(*num):count = 0for i in num:count += ireturn countprint(Calculation(1,2,3,4))
  • 輸出
10

天天向上代碼

import math
dayup = math.pow((1.0 + 0.005), 365)
daydown = math.pow((1.0 - 0.005),365)print("向上:{:.2f},向下:{:.2f}.".format(dayup,daydown))
def dayUP(df):dayup = 0.01for i in range(365):if i % 7 in [6,0]:dayup = dayup * (1 - 0.01)else:dayup = dayup * (1 + df)return dayupdayfactor = 0.01
while(dayUP(dayfactor) < 37.78):dayfactor += 0.001print("每天努力參數是:{:.3f}.".format(dayfactor))

單元測試

原文鏈接

單元測試是用來對一個模塊、一個函數或者一個類來進行正確性檢驗的測試工作。

比如對函數abs(),我們可以編寫出以下幾個測試用例:

輸入正數,比如1、1.2、0.99,期待返回值與輸入相同;

輸入負數,比如-1、-1.2、-0.99,期待返回值與輸入相反;

輸入0,期待返回0;

輸入非數值類型,比如None、[]、{},期待拋出TypeError。

把上面的測試用例放到一個測試模塊里,就是一個完整的單元測試。

如果單元測試通過,說明我們測試的這個函數能夠正常工作。如果單元測試不通過,要么函數有bug,要么測試條件輸入不正確,總之,需要修復使單元測試能夠通過。

異常處理代碼

try:<body>
except <ErrorType1>:<handler1>except <ErrorType2>:<handler2>
except:<handler0>
else:<process_else>
finally:<process_finally>

單例模式

class Singleton(object):class _A(object):def __init__(self):passdef display(self):return id(self)_instance = Nonedef __init__(self):if Singleton._instance is None:Singleton._instance = Singleton._A()def __getattr__(self, attr):return getattr(self._instance, attr)if __name__ == '__main__':s1 = Singleton()s2 = Singleton()print(id(s1), s1.display())print(id(s2), s2.display())

代碼的解釋
def getattr(self, attr):
return getattr(self._instance, attr)

# 例如這里有一個類 A ,,有兩個屬性
>>> class A:
...     test1 = "this test1"
...     test2 = "this test2"
...
>>># 然后實例化一個對象
>>> a = A()# 就可以用 getattr  直接去獲取對象 a 的屬性值
>>> getattr(a, "test1")
'this test1'
>>>
>>> getattr(a, "test2")
'this test2'
>>>

Python 中的 if name == ‘main’ 該如何理解

http://blog.konghy.cn/2017/04/24/python-entry-program/

python環境搭建和pycharm的安裝配置及漢化(零基礎小白版)

https://blog.csdn.net/ling_mochen/article/details/79314118#commentBox

PyCharm和git安裝教程

https://blog.csdn.net/csdn_kou/article/details/83720765

爬蟲

學習資源是中國大學mooc的爬蟲課程。《嵩天老師》
下面寫幾個簡單的代碼!熟悉這幾個代碼的書寫以后基本可以完成需求!

簡單例子1

import requestsr = requests.get("https://www.baidu.com")
fo = open("baidu.txt", "w+")
r.encoding =  'utf-8'
str = r.text
line = fo.write( str )

簡單例子2

import requests
url = "https://item.jd.com/2967929.html"
try:r = requests.get(url)r.raise_for_status()//如果不是200就會報錯r.encoding = r.apparent_encoding//轉utf-8格式print(r.text[:1000])//只有前1000行
except:print("False")fo.close()

BeautifulSoup的使用1

fo = open("jingdong.md","w")url = "https://item.jd.com/2967929.html"
try:r = requests.get(url)r.encoding = r.apparent_encodingdemo = r.textsoup = BeautifulSoup(demo,"html.parser")fo.write(soup.prettify())fo.writelines(soup.prettify())
except:print("False")fo.close()

BeautifulSoup的使用1

fo = open("baidu.md","w")try:r = requests.get("https://www.baidu.com")r.encoding = r.apparent_encodingdemo = r.textsoup = BeautifulSoup(demo,"html.parser")fo.write(soup.prettify())fo.writelines(soup.prettify())
except:print("False")
fo.close()

附贈
爬蟲和python例子開源鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382440.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用supervisord 來守護 nginx進程

supervisord 簡介&#xff1a; Supervisord 是用 Python 實現的一款的進程管理工具&#xff0c;supervisord 要求管理的程序是非 daemon 程序&#xff0c;supervisord 會幫你把它轉成 daemon 程序&#xff0c;因此如果用 supervisord 來管理進程&#xff0c;進程需要以非daemo…

Mac快捷鍵和實用技巧

文章目錄如何更改應用圖標怎么移動Mac狀態欄的圖標macOS常用快捷鍵多開QQ如何更改應用圖標 https://www.macdu.org/16592.html 怎么移動Mac狀態欄的圖標 https://www.macdu.org/16683.html macOS常用快捷鍵 https://www.macdu.org/16607.html 多開QQ https://www.macdu.…

vs2017編譯QT with ssl

背景&#xff1a;項目中使用的Qt環境不支持https請求&#xff0c;原因是 源碼編譯的時候沒有鏈接相應的ssl庫文件。需要重新編譯qt 第一步 先編譯Openssl 1)安裝perl&#xff0c;并配置環境變量 下載地址&#xff1a; http://downloads.activestate.com/ActivePerl/releases/5…

go語言實現2048小游戲(完整代碼)

文章目錄2048邏輯分析完整代碼2048邏輯分析 2048小游戲的基本操作是上下左右&#xff0c;每個操作的邏輯都不太一樣&#xff01;這個時候&#xff0c;通過數組旋轉的方式。將所有操作轉換為向上的操作 git地址 https://gitee.com/hodgekou/golang.git package mainimport (&q…

動態二維碼免費制作

python3制作二維碼 很多網站都可以自定義制作很漂亮的二維碼&#xff0c;提供了各種素材&#xff0c;但是輸出文件又各種限制&#xff0c;非要買她的會員不可。好吧&#xff01;那我們就自己做一個。&#xff08;大牛的開源項目&#xff09; 最終效果 開源項目網站 git clon…

vs 2017 靜態庫 動態庫 的初步使用

靜態庫的初步使用 新建 靜態庫 項目 Lib1 會產生 sln文件與vcproj文件&#xff0c;vcproj是工程文件&#xff0c;sln是解決方案文件 一個解決方案可以有多個工程 在頭文件(Lib1.h)寫函數聲明&#xff0c;在cpp文件定義函數實現 這時候右鍵點擊項目 ->生成, 會產生 Lib1.lib…

C語言貪吃蛇

擴展功能實現 加速減速計分鏈表實現彩色界面暫停 開源代碼 貪吃蛇 動圖展示&#xff0c;&#xff08;加載比較慢&#xff09;

C++ 讀取windows服務列表 與操作注冊表

讀取服務列表 https://www.cnblogs.com/Leo-Forest/archive/2013/05/03/3056569.html 操作注冊表 https://blog.csdn.net/yanchenyu365/article/details/84840908

Python練手項目

python3學習筆記《目錄》 PyCharm和git安裝教程 git入門教程 python3學習筆記 Mooc學習Python3筆記 python3字符串處理&#xff0c;高效切片 三國演義人物出場統計 統計哈姆雷特文本中高頻詞的個數 python3制作動態二維碼 python的文件操作 簡單的爬蟲筆記 爬蟲實戰項…

windows C++ 通過WMI獲取底層信息

參考 可以通過修改參數來獲取相應的信息 https://www.cnblogs.com/hjbf/p/10775112.html https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-operatingsystem?redirectedfromMSDN

知網畢業論文爬取

知網論文 查找文獻的時候每次只顯示10頁二次檢索功能又還沒有&#xff08;不知道是不是我沒找到&#xff09;。干脆用爬蟲把所有和自己論文關鍵字相關的文獻題目都爬取下來&#xff0c;然后自己做一個小的檢索表。 開源項目 https://github.com/hodgekou/CNKICrawler.git 配…

go語言 函數相關1:實參到形參的傳遞永遠是值拷貝

相關知識點 a. 函數實參到形參的傳遞永遠是值拷貝 b. 函數參數 支持不定長參數,不定參數名在函數體 內相當于切片&#xff0c;對切片的操作同樣適合對不定參數的操作 c. 切片是引用類型&#xff0c;值包含指向數組的指針 func test1(s ...int) { // s為不定長參數s[0] 888 }…

git 初步使用01

git工作流程 git的安裝 1&#xff09;安裝git 2&#xff09;安裝烏龜 3&#xff09;漢化烏龜創建本地倉庫 在一個空目錄&#xff0c;打開git bash here&#xff0c; 輸入命令 git init 刪除并保留本地副本 選中目標文件&#xff0c;右鍵烏龜&#xff0c;刪除并保留本地副本 這…

net-tools和ifconfig

文章目錄歷史關系兩者使用對比一、顯示所有已連接的網絡接口二、激活或停用網絡接口三、為網絡接口分配IPv4地址四、移除網絡接口的IPv4地址五、顯示網絡接口的IPv4地址六、為網絡接口分配IPv6地址七、顯示網絡接口的IPv6地址八、移除網絡設備的IPv6地址九、改變網絡接口的MAC地…

go語言在windows編譯在linux上運行的可執行程序

package mainimport ("fmt""os""os/exec" )//filepath: 要編譯的文件的路徑 func build(filepath string){_ os.Setenv("CGO_ENABLED", "0")_ os.Setenv("GOARCH", "amd64")_ os.Setenv("GOOS&…

Django無法顯示圖片

首先注意的一點是&#xff0c;Django沒有根目錄的這個說法&#xff0c;所以下載下來的html文件沒有辦法直接使用&#xff0c;必須進行修改路徑&#xff0c;特別是圖片引用的路徑&#xff0c;需要進行修改。 路徑不對 源碼 {% load staticfiles %} <img src"{% stati…

go語言函數相關

函數類型 函數類型也叫作函數簽名&#xff0c; 就是函數定義首行去掉函數名、參數名和&#xff5b;&#xff0c;可以使用fmt.Printf 的”%T”格式化參數打印函數的類型。 可以使用 type 定義函數類型&#xff0c;函數類型變量可以作為函數的參數或返回值。 實際函數類型變量和…

go語言如何連接數據庫

文章目錄安裝驅動連接數據庫查詢表結果插入結果刪除結果安裝驅動 go get github.com/go-sql-driver/mysqlimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )連接數據庫 //用戶名&#xff1a;密碼^tcp(地址:3306)/數據庫db, err…

在windows下,編譯可訪問https的libcurl靜態庫過程

1. 首先編譯openssl靜態庫 整個過程用的是 vs2015命令提示工具 需要安裝perl 下載地址&#xff1a;添加鏈接描述 解壓后&#xff0c; 在 openssl-1.0.2e目錄下創建develop這個文件夾&#xff0c; cd到 openssl-1.0.2e目錄下&#xff0c; a.配置編譯文件和模式 執行 perl Co…

Go語言爬蟲項目將結果寫入MySql數據庫

來源于Google資深工程師深度講解Go語言 package mainimport ("fmt""io/ioutil""net/http" )const url "http://www.zhenai.com/zhenghun"func main() {//發送get請求resp, err : http.Get(url)if err ! nil {panic(err)}//關閉通道d…