主頁 > 後端開發 > 理想國Python入門教程

理想國Python入門教程

2020-12-20 11:51:57 後端開發

01.計算機基礎

計算機組成

  • 硬體系統
    • CPU:
      • 計算機的運算和計算中心
      • 相當于人類大腦
    • 記憶體:
      • 暫時存盤資料,臨時加載資料應用程式
      • 4G,8G,16G,32G
      • 速度快,高鐵,斷電即消失,造價很高
    • 硬碟:
      • 磁盤,長期存盤資料,
      • D盤,E盤
      • 存盤檔案,視頻,音頻等等
      • 500G,1T
      • 造價相對低,
  • 軟體系統
    • 作業系統:一個軟體,連接計算機的硬體與所有軟體之間的一個軟體,
    • 應用軟體:QQ,微信,迅雷等

02.python簡介

python是什么

  • 一門當前(2020年)非常流行的高級編程語言
  • 20世紀90年代初Python語言誕生
  • 作者是吉多·范羅蘇姆(Guido van Rossum)
  • 之所以選中Python(大蟒蛇的意思)作為該編程語言的名字,是取自英國20世紀70年代首播的電視喜劇《蒙提·派森的飛行馬戲團》(Monty Python’s Flying Circus),

python能做什么

  • web后端開發
  • 自動化運維
  • 自動化測驗
  • 爬蟲
  • 資料分析
  • 人工智能

03.環境搭建

安裝python編譯器

  • python:https://www.python.org/downloads/windows/
  • anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

安裝python編輯器

  • vscode:https://code.visualstudio.com/Download

安裝vscode常用插件

  • python
    • python開發插件
  • chinese
    • 中文漢化
  • vscode-icons
    • 圖示主題
  • Bracket Pair Colorizer
    • 代碼顏色高亮一般只會幫你區分不同的變數
    • 這款插件給不同的括號換上了不同的顏色
    • 括號的多的時候非常實用
  • Settings Sync
    • 這個插件可以實作同步你的vscode設定,包括setting檔案,插件設定等
    • 不過你要先有github的賬戶,因為它利用了github的token功能
    • 相當于把這樣檔案上傳到了你的github賬戶中
  • Path Autocomplete
    • 有時候程式需要讀取檔案,自己手動去復制檔案路徑還是比較麻煩的
    • 有了這個插件就方便多了,它能自動感知當前目錄下所有的檔案,只需要你自己選擇就好了
  • Remote Development
    • vscode 的遠程開發支持,可以通過 ssh 連接遠程服務器,進行遠程開發,
    • 同時集成了xshell 遠程終端 和 xftp 遠程檔案管理的功能,
  • Code Spell Checker
    • 單詞拼寫檢查,非常推薦
    • 有時候會拼錯單詞,這個不僅可以指出錯誤,還能提供正確單詞的拼寫方式
    • 安裝好之后,選中拼寫錯誤的單詞,旁邊出現黃色小燈泡
    • 點擊選擇單詞,直接替換,
  • Guides
    • 提供縮進檢查,有時候for, if 寫多了,就分不清對應的列數
    • VScode雖然自帶的有縮進檢查,但是不明顯
    • 這個將縮進線顯示為紅色,非常醒目,
  • SynthWave‘84
    • 字體顏色主題
  • koroFileHeader
    • 檔案頭注釋(ctrl+alt+i)
    • 和函式頭注釋(ctrl+alt+t)
    • 一鍵生成頭注釋
  • Better Comments
    • 這個插件通過不同的彩色把不同功能的注釋資訊區分開來
    • 能區分的功能有:Alerts、Queries、TODOs、Highlights和用戶自定義
  • YAPF
    • 輸入命令:pip install yapf,安裝yapf
    • 然后在File->Preferences->Settings,輸入python.formatting.provider
    • 然后選擇yapf,完成配置
    • 在需要整理的Python代碼檔案中,使用快捷鍵:Alt+Shift+F,即可完成代碼整理作業
  • Python Preview
    • 能夠實時可視化你的代碼結果,
  • Git Graph
    • Git神器,堪比Pycharm內的Git管理器
    • 通過這個擴展,可以清楚地看見當前分支的commit記錄和變化
    • 可以通過按鈕的方式輕易地創建、切換分支、cherry pick、merge等操作
    • 對比分支、查看未提交的修改…
    • 還有許多可定制的擴展設定
  • Python Snippets
    • 很多時候,我們用到的代碼片段都是類似的,比如for回圈、try/catch等等
    • 現在有了這個工具,我們只需要輸入命令生成代碼片段,然后再進行微調,就能完成功能的開發
    • 此外,有些時候我們可能會忘記某些內置函式的用法,這個工具也能給你提供示例代碼做參考,而不用你再去搜索引擎搜索示例
  • Django
  • flask-snippets
  • Visual Studio IntelliCode
  • Bookmarks
  • Error Lens
  • File Utils
  • GitLens
  • indent-rainbow
  • jumpy
  • MetaGo
  • Project Manager
  • Quick and Simple Text Selection

04.配置pip國內源

常用國內源

http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 華中理工大學
http://pypi.sdutlinux.org/simple/ 山東理工大學
http://pypi.mirrors.ustc.edu.cn/simple/ 中國科學技術大學
https://pypi.tuna.tsinghua.edu.cn/simple 清華

基本使用

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

Linux配置pip源

# 進入根目錄
cd ~

# 創建檔案夾
mkdir .pip

# 進入目錄
cd .pip

# 編輯檔案pip.conf(會自動創建)
vim pip.conf

# 把下邊的復制進去(我用的清華的源,如果想配置其他源只需要改下邊的內容即可)
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

windows配置pip源

# 在windows檔案管理器中,輸入 %APPDATA%,然后回車,接下來會進入一個新的路徑
# 在該目錄下新建pip檔案夾,然后到pip檔案夾里面去新建個pip.ini檔案
# 把下邊的復制進去(我用的清華的源,如果想配置其他源只需要改下邊的內容即可)
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

05.變數和常量

what:概念

  • 變數:
    • 程式運行程序中,需要加載到記憶體中使用,可能會發生改變的資料的識別符號
    • 程式運行程序中會發生改變的資料
  • 常量:
    • 程式運行程序中,不會發生改變的,需要加載到記憶體中使用的資料的識別符號
    • 程式運行程序中不會發生改變的資料
    • python中沒有自己的常量,實際上是全部大寫的變數

why:為什么使用

  • 能夠記錄變化的值,幫助我們寫出優美的代碼
  • 一個良好的程式離不開各種各樣的變數

where:在哪里使用

  • 程式中充斥著各種各樣的變數和常量
  • 只要撰寫代碼,一般都會用到變數
  • 任何一個Python程式中都可以使用變數

when:什么時候使用

  • 如果程式運行中某個值需要記錄,以便下次繼續使用,則使用變數保存
  • 比如,記錄商品的價格,記錄人的姓名,年齡等

how:如何使用

  • 變數的命名需要遵循識別符號的命令規則和規范
    • 不能以數字開頭
    • 不能是系統關鍵字
    • 需要由有意義的英文單詞組成,不要包含一些沒有意義的特殊字符
    • 下劃線命名法:
      • 每個英文單詞都全小寫,由下劃線分割
      • 一般用于命名變數
    • 大駝峰命名法:
      • 每個單詞的首字母都大寫
      • 一般用于命名類名
    • 全大寫命名法:
      • 每個單詞全大寫,單詞之間用下劃線分割
      • 一般用于命名常量
  • 變數的命名方式:變數名 = 值
  • 舉例:
    • 變數
      • name = '張大鵬'
      • age = 22
      • gender = '男'
    • 常量
      • PI = 3.14159
      • PERSON_ID = 100008199208293837

06.注釋

what:是什么

  • 程式中用來解釋說明代碼的文本描述
  • 注釋不會被執行,只起到解釋說明代碼的作用

why:為什么使用

  • 為了防止過一段時間后遺忘代碼的邏輯
  • 為了方便別的程式員閱讀我們的代碼

where:在哪里使用

  • 代碼邏輯比較復雜的時候使用
  • 一個完整的代碼塊一般要配上一個注釋

when:什么時候使用

  • 當你怕一段時間后遺忘代碼的邏輯的時候
  • 當你想要別人能夠一眼就看出你的代碼做了什么的時候

how:怎么使用

  • 單行注釋:# 注釋內容
  • 多行注釋:""" 注釋內容 """

07.基本資料型別

what:是什么

  • 數字型別:int,float
  • 字串型別:str
  • 布林值型別:bool
  • 容器型別:list,tuple,dict,set

why:為什么使用

  • 為了便于計算機理解我們的代碼內容
  • 為了提高計算機的執行效率

where:在哪里使用

  • 數字型別:通常用于涉及到數值型別資料傳輸和計算的時候
  • 字串型別:通常用于輸入輸出的時候
  • 布林值型別:通常用于需要判斷是否滿足條件的時候
  • 容器型別:通常用于需要記錄多個相同或者相關型別資料的時候

when:什么時候使用

  • 按需使用
  • 如果是數值型別資料,就使用int或者float
  • 如果是字串型別資料,就使用str
  • 如果需要記錄真偽情況,就使用bool

how:怎么使用

  • 使用整數: age = 22
  • 使用浮點數:price = 33.33
  • 使用字串:name = '張大鵬'
  • 使用布林值:flag = True

示例代碼:從控制臺輸入你的姓名,年齡,身高,然后列印成一句話輸出在控制臺

'''
Author: 張大鵬
Date: 2020-12-19 18:21:01
LastEditTime: 2020-12-19 18:22:55
LastEditors: Please set LastEditors
Description: 基本資料型別的使用
FilePath: \python_basic_20201219\hw01_basic_data_type.py
'''

# 需求:從控制臺輸入你的姓名,年齡,身高,然后列印成一句話輸出在控制臺

name = input('請輸入姓名:')
age = int(input('請輸入年齡: '))
height = float(input('請輸入身高:'))

print(f'您的姓名是{name},年齡是{age},身高是{height}')

輸出內容

請輸入姓名:張大鵬
請輸入年齡: 22
請輸入身高:165
您的姓名是張大鵬,年齡是22,身高是165.0

08.資料型別的基本運算

what:是什么

  • 基本運算指的是加減乘除運算

why:為什么使用

  • 基本運算是最常用最基礎的操作,必須掌握

where:在哪里使用

  • 當程式中需要做一些基本運算的時候使用

when:什么時候使用

  • 當數值型別需要做基本運算的時候
  • 當字串需要做拼接或者重復的時候
  • 布林值不建議做基本運算

how:怎么使用

  • 數值型別做基本運算: a = 10, b = 20
    • 加法:result = a + b
    • 減法:result = a - b
    • 乘法:result = a * b
    • 除法:result = a * b
  • 字串做基本運算:name1 = '張大鵬', name2 = '理想國真恵玩'
    • 拼接:result = name2 + '-' + name1
    • 重復:result = '-' * 33

練習1:假設你是超市收銀員,現在需要結賬,從控制臺錄入商品的單價,數量,折扣,計算應付金額

'''
Author: 張大鵬
Date: 2020-12-19 18:40:01
LastEditTime: 2020-12-19 18:42:24
LastEditors: Please set LastEditors
Description: 練習題1
FilePath: \python_basic_20201219\hw01_practice01.py
'''
# 假設你是超市收銀員,現在需要結賬,
# 從控制臺錄入商品的單價,數量,折扣,計算應付金額

price = float(input("請輸入商品單價: "))
good_num = int(input("請輸入購買數量: "))
good_discount = float(input("請輸入折扣:"))

result = price * good_num * good_discount

print(f"應付金額:{result}")

輸出結果

請輸入商品單價: 20
請輸入購買數量: 3
請輸入折扣:0.9
應付金額:54.0

練習2:模擬登陸,假設資料庫中存在用戶名’lxgzhw’和密碼’lxgzhw123456’,從控制臺錄入賬號和密碼,判斷是否正確,并列印兩條33個’-'組成的分割線,在分割線之間列印登錄是成功還是失敗

'''
Author: 張大鵬
Date: 2020-12-19 18:43:30
LastEditTime: 2020-12-19 18:46:23
LastEditors: Please set LastEditors
Description: 基本資料型別練習題2
FilePath: \python_basic_20201219\hw01_practice02.py
'''

# 模擬登陸,
# 假設資料庫中存在用戶名'lxgzhw'和密碼'lxgzhw123456'
database_username = 'lxgzhw'
database_password = 'lxgzhw123456'

# 從控制臺錄入賬號和密碼,判斷是否正確
username = input("請輸入用戶名:")
password = input("請輸入密碼:")

result = False # 默認不正確
if username == database_username and password == database_password:
    result=True

# 并列印兩條33個'-'組成的分割線
# 在分割線之間列印登錄是成功還是失敗
print('-' * 33)
if result:
    print("登錄成功")
else:
    print("登錄失敗")
print('-' * 33)

輸出結果

請輸入用戶名:lxgzhw
請輸入密碼:lxgzhw123456
---------------------------------
登錄成功
---------------------------------

練習3:簡單加法計算器:讓用戶輸入第一個數和第二個數,計算兩個數的和然后輸出到控制臺

'''
Author: 張大鵬
Date: 2020-12-19 18:47:35
LastEditTime: 2020-12-19 18:49:04
LastEditors: Please set LastEditors
Description: 基本資料型別練習題3
FilePath: \python_basic_20201219\hw01_practice03.py
'''

# 簡單加法計算器
# 讓用戶輸入第一個數和第二個數
num1 = int(input("請輸入第一個數: "))
num2 = int(input("請輸入第二個數: "))

# 計算兩個數的和
result = num1 + num2

# 然后輸出到控制臺
print(f"{num1} + {num2} = {result}")

輸出結果

請輸入第一個數: 111
請輸入第二個數: 222
111 + 222 = 333

09.常用運算子

what:是什么

  • 算術運算子:用于做數學運算的特殊識別符號
    • 加法:+ +=
    • 減法:- -=
    • 乘法:* *=
    • 除法:/ /=
    • 次冪:** **=
    • 求余:% %=
    • 整除:// //=
  • 條件運算子:用于做大小判斷的特殊識別符號
    • 大于:>
    • 小于:<
    • 大于等于:>=
    • 小于等于:<=
    • 等于:==
    • 不等于:!=
  • 邏輯運算子:用于連接多個條件運算式的特殊識別符號
    • 與:and
    • 或:or
    • 非:not

why:為什么使用

  • 運算子是最基本的,最常用的編程識別符號,必須熟練掌握
  • 運算子遍布于每一個程式,學懂才能看懂別人的代碼

where:在哪里使用

  • 在任何需要呼叫的地方都可以使用

when:什么時候使用

  • 按需使用
  • 算術運算子:用于計算,得到新的計算結果
  • 條件運算子:用于判斷,得到布林值
  • 邏輯運算子:連接多個判斷,得到的還是布林值

how:怎么使用

  • 在實戰中使用
  • 邊學邊練,邊練邊學

10.流程控制陳述句if

what:是什么

  • 程式分支結構
  • 根據不同的條件執行不同的代碼

why:為什么要使用

  • 一般程式中都會頻繁的使用分支結構
  • Python中就提供了if陳述句一種條件分支結構
  • if陳述句是Python基礎中必須要掌握的一個知識點

where:在哪里使用

  • if陳述句可以在程式的任何需要它的地方使用
  • if陳述句可以嵌套,if陳述句的內部還可以使用if陳述句
  • if陳述句可以在程式的頂層使用
  • if陳述句可以在其他陳述句的內部使用,比如for,while,函式內部,類的內部

when:什么時候使用

  • 當代碼需要根據某個條件執行結果的不同而執行不同代碼塊的時候使用
  • 比如用戶名和密碼正確則執行登錄成功的代碼,否則執行登錄失敗的代碼

how:如何使用

  • 單獨if
if 條件:
    條件滿足執行的代碼
  • if-else陳述句
if 條件:
    條件滿足執行的代碼
else:
    條件不滿足執行的代碼
  • if-elif-else陳述句
if 條件1:
    條件1滿足執行的代碼
elif 條件2:
    條件2滿足執行的代碼
elif 條件3:
    條件3滿足執行的代碼
...
else:
    所有條件都不滿足執行的代碼

練習1:進網吧案例,讓用戶輸入年齡,如果年齡大于等于18歲,則列印"已成年,可以進網吧"

'''
Author: 張大鵬
Date: 2020-12-19 19:12:36
LastEditTime: 2020-12-19 19:13:29
LastEditors: Please set LastEditors
Description: if練習1
FilePath: \python_basic_20201219\hw02_practice01.py
'''
# 進網吧案例,讓用戶輸入年齡
age = int(input("請輸入年齡: "))

# 如果年齡大于等于18歲
# 則列印"已成年,可以進網吧"
if age >= 18:
    print("已成年,可以進網吧")

輸出結果

請輸入年齡: 22
已成年,可以進網吧

練習2:頁面跳轉案例,讓用戶輸入自己的身份(1管理員,2普通用戶),如果是管理員則跳轉到后臺管理頁面,否則跳轉到普通用戶后臺頁面

'''
Author: 張大鵬
Date: 2020-12-19 19:14:24
LastEditTime: 2020-12-19 19:16:28
LastEditors: Please set LastEditors
Description: if練習2
FilePath: \python_basic_20201219\hw02_practice02.py
'''

# 頁面跳轉案例,
# 讓用戶輸入自己的身份(1管理員,2普通用戶)
profile = input("請輸入您的身份(1管理員,2普通用戶):")

is_admin = profile == '1'

# 如果是管理員則跳轉到后臺管理頁面
# 否則跳轉到普通用戶后臺頁面
if is_admin:
    print("管理員:跳轉到后臺管理頁面")
else:
    print("普通用戶:調整到普通用戶后臺頁面")

輸出結果

請輸入您的身份(1管理員,2普通用戶):1
管理員:跳轉到后臺管理頁面

練習3:判斷星期幾案例,讓用戶輸入一個數字,如果是1則列印星期一,2則列印星期二以此類推,如果大于7或者小于0則列印日期錯誤

'''
Author: 張大鵬
Date: 2020-12-19 19:17:31
LastEditTime: 2020-12-19 19:19:37
LastEditors: Please set LastEditors
Description: if練習3
FilePath: \python_basic_20201219\hw02_practice03.py
'''
# 判斷星期幾案例,
# 讓用戶輸入一個數字
week_day = int(input("請輸入今天是一周的第幾天:"))

# 如果是1則列印星期一,2則列印星期二以此類推,
if week_day == 1:
    print("星期一")
elif week_day == 2:
    print("星期二")
elif week_day == 3:
    print("星期三")
elif week_day == 4:
    print("星期四")
elif week_day == 5:
    print("星期五")
elif week_day == 6:
    print("星期六")
elif week_day == 7:
    print("星期天")
# 如果大于7或者小于0則列印日期錯誤
else:
    print("日期錯誤")

輸出結果

請輸入今天是一周的第幾天:3
星期三

練習4:判斷分數等級,某次考試總分100分,現在需要判斷成績所屬等級,小于60分為D,大于等于60小于80分為C,大于等于80分小于90分為C,大于等于90分小于等于100分為A,如果小于0或者大于100分則為錯誤的分數,寫程式,錄入一個分數,判斷對應的等級,

'''
Author: 張大鵬
Date: 2020-12-19 20:44:11
LastEditTime: 2020-12-19 20:46:49
LastEditors: Please set LastEditors
Description: if練習4
FilePath: \python_basic_20201219\hw03_practice04.py
'''

# 判斷分數等級,
# 某次考試總分100分,現在需要判斷成績所屬等級
# 小于60分為D,大于等于60小于80分為C
# 大于等于80分小于90分為C,大于等于90分小于等于100分為A
# 如果小于0或者大于100分則為錯誤的分數,
# 寫程式,錄入一個分數,判斷對應的等級,
score = int(input("請輸入分數:"))

if 90<=score<=100:
    print("A")
elif 80<=score<90:
    print("B")
elif 60<=score<80:
    print("C")
elif 0<=score<60:
    print("D")
else:
    print("分數錯誤")

輸出結果

請輸入分數:55
D

11.嵌套的if

what:是什么

  • if陳述句中嵌套使用if,叫做if嵌套

why:為什么使用

  • 有時候我們需要做多重判斷
  • 比如登錄:
    • 我們先判斷驗證碼是否正確
    • 如果驗證碼正確再接著判斷賬號密碼是否正確

where:在哪里使用

  • 可以在程式任何需要嵌套if的地方使用

when:什么時候使用

  • 當需要做多重判斷的時候使用

how:怎么使用

if 外部條件:
    if 內部條件:
        陳述句

練習1:模擬登陸,假設用戶名為’lxgzhw’,密碼為’lxgzhw123456’,驗證碼為’q5u7’,讓用戶輸入賬號密碼及驗證碼,校驗是否登錄成功

'''
Author: 張大鵬
Date: 2020-12-19 20:23:47
LastEditTime: 2020-12-19 20:29:30
LastEditors: Please set LastEditors
Description: if嵌套練習1
FilePath: \python_basic_20201219\hw03_practice01.py
'''

# 模擬登陸,
# 假設用戶名為'lxgzhw',密碼為'lxgzhw123456'
# 驗證碼為'q5u7'
data_username = 'lxgzhw'
data_password = 'lxgzhw123456'
session_captcha = 'q5u7'

# 讓用戶輸入賬號密碼及驗證碼
# 校驗是否登錄成功
username = input("請輸入用戶名:")
password = input("請輸入密碼:")
captcha = input(f"請輸入驗證碼({session_captcha}):")

if captcha == session_captcha:
    if username==data_username and password == data_password:
        print(f"登錄成功,歡迎您:{username}")
    else:
        print("登錄失敗,用戶名或密碼錯誤")
else:
    print("驗證碼錯誤,請檢查后重新輸入")

輸出結果

請輸入用戶名:lxgzhw
請輸入密碼:lxgzhw123456
請輸入驗證碼(q5u7):q5u7
登錄成功,歡迎您:lxgzhw

練習2:淘寶購物案例,假設某品牌衣服230元一件,某用戶一下子購買了100件,先判斷支付密碼是否正確(假設支付密碼為123456),再判斷余額是否充足(假設余額為13000元),向控制臺輸出購買成功還是失敗,如果失敗,請說明失敗原因,

'''
Author: 張大鵬
Date: 2020-12-19 20:30:56
LastEditTime: 2020-12-19 20:35:04
LastEditors: Please set LastEditors
Description: if嵌套練習2
FilePath: \python_basic_20201219\hw03_practice02.py
'''
# 淘寶購物案例,
# 假設某品牌衣服230元一件
cloth_price = 230

# 某用戶一下子購買了100件
shop_num = 100

# 先判斷支付密碼是否正確(假設支付密碼為123456)
# 再判斷余額是否充足(假設余額為13000元)
# 向控制臺輸出購買成功還是失敗
# 如果失敗,請說明失敗原因
need_pay = cloth_price * shop_num
print(f"下單成功,應付金額{need_pay}元")

if input("請輸入支付密碼:") == '123456':
    if need_pay < 13000:
        print("支付成功")
    else:
        print("余額不足,交易失敗")
else:
    print("支付密碼錯誤,請重新輸入")

輸出結果

下單成功,應付金額23000元
請輸入支付密碼:123456
余額不足,交易失敗

練習3:網站爬蟲案例,爬蟲一般都是需要一個固定網址,該網址可以訪問才能夠正常爬取,需要訪問該網址,則需要聯網,假設某網址為"http://lxgzhwtest.com",能夠正常訪問,但是現在電腦沒有聯網,寫一段代碼,模擬爬蟲程式,判斷能否正常運行,如果不能正常運行,請說明原因,

'''
Author: 張大鵬
Date: 2020-12-19 20:36:05
LastEditTime: 2020-12-19 20:38:56
LastEditors: Please set LastEditors
Description: if嵌套練習3
FilePath: \python_basic_20201219\hw03_practice03.py
'''

# 網站爬蟲案例,
# 爬蟲一般都是需要一個固定網址
# 該網址可以訪問才能夠正常爬取
# 需要訪問該網址,則需要聯網
# 假設某網址為"http://lxgzhwtest.com",能夠正常訪問
url = "http://lxgzhwtest.com"
is_exists = True

# 但是現在電腦沒有聯網
is_connect = False

# 寫一段代碼,模擬爬蟲程式,判斷能否正常運行
# 如果不能正常運行,請說明原因
print("開始運行爬蟲,,,")
if is_exists:
    print("網址存在,可以正常訪問")
    if is_connect:
        print("能過正常聯網,爬蟲正常運行")
    else:
        print("訪問失敗,請檢查網路連接")
else:
    print("網頁不存在,404錯誤")

輸出結果

開始運行爬蟲,,,
網址存在,可以正常訪問
訪問失敗,請檢查網路連接

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/237648.html

標籤:python

上一篇:tenacity.retry Python中一個專門用來重試的庫

下一篇:Python爬蟲實戰

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more