第二章Python入門

第二章 Python入門

2.1.簡介

Python是著名的「龜叔」(Guido van Rossum)在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言python

Python的哲學就是簡單優雅,儘可能寫容易看明白的代碼,儘可能寫少的代碼。爲咱們提供了很是完善的基礎代碼庫,覆蓋了網絡、文件、GUI、數據庫、文本等大量內容,

2.1.1.Python適合開發哪些類型的應用呢?

  • 雲計算
  • 機器學習
  • 科學運算
  • 自動化運維
  • 自動化測試
  • 爬蟲
  • 數據分析
  • GUI圖形化
  • Web開發等

2.1.2.Python有哪些缺點呢?

  • 運行速度慢,和C程序相比很是慢,由於Python是解釋型語言
  • 代碼不能加密。若是要發佈你的Python程序,實際上就是發佈源代碼

2.1.3.python種類

  • Cpython(推薦
    Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。
  • Jyhton
    Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。
  • IronPython
    Python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)
  • PyPy
    Python實現的Python,將Python的字節碼字節碼再編譯成機器碼。
  • RubyPython、Brython 等。

2.1.4.Python版本

目前主流的Python版本有兩大分類:數據庫

  • 2.x ,不少公司依然在用 2.7 版本,但Python官方在 2020 年將中止對 Python 2 的支持。
  • 3.x ,功能更增強大且修復了不少2版本中不合適之處(推薦使用)

2.2 環境的安裝

  • 解釋器:py2 / py3 (環境變量)
  • 開發工具:pycharm

2.3 編碼

2.2.1 編碼基礎

  • ascii,英文,8位表示一個東西,2**8
  • unicode ,萬國碼,32位表示一個東西,2**32
  • utf-8,給unicode壓縮,用盡可能少的位數表示一個東西,以8個位爲單位
  • gbk,國標,只能中國人本身用, 一箇中文用16位,兩個字節表示。
  • gb2312

2.2.2 python編碼相關

對於Python默認解釋器編碼:編程

  • py2: ascii
  • py3: utf-8

若是想要修改默認編碼,則可使用:網絡

# -*- coding:utf-8 -*-

注意:對於操做文件時,要按照:以什麼編寫寫入,就要用什麼編碼去打開。運維

2.2.3 單位轉化

8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就夠了

2.4 輸入輸出

2.4.1.輸入

python2和python3輸入的語法不同機器學習

  • python2
>>> my_input = raw_input('666')
666
  • python3
>>> my_input = input('666')
666

2.4.2.輸出

python2和python3輸出的語法不同編程語言

  • python2
>>> print "hello"
hello
  • python3
>>> print('hello')
hello

2.5 變量

問:爲何要有變量?工具

爲某個值建立一個「外號」,之後在使用時候經過此外號就能夠直接調用。學習

變量就是一個會變化的量,加載到內存中,方便調用。不只能夠是數字,還能夠是任意數據類型開發工具

2.5.1規範

  1. 變量名只能包含:字母/數字/下劃線
  2. 數字不能開頭
  3. 不能是python的關鍵字。 [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

2.5.2 建議

  1. 見名知意
>>> name='zzy'
>>> print(name)
zzy
>>> age=24
>>> print(age)
24
  1. 用下劃線鏈接
>>> gao_qizhi='zzy'
>>> print(gao_qizhi)
zzy
  • 變量名建議不使用拼音和中文
  • 變量的要具備意義
  • 變量名不要過長
  • 變量名要區分大小寫

2.6 常量

所謂常量就是不能變的變量,好比經常使用的數學常數π就是一個常量。在Python中,一般用所有大寫的變量名錶示常量

2.7 註釋

  • 單行註釋,在一行的最開頭添加"#"這個符號,解釋器就會忽略這行代碼
# print(hello)
  • 多行註釋,在代碼塊上一行,和最下面一行添加
'''
numb = 0
count = 1
while count < 100:
    if count % 2 == 1:
        numb -= count  # total -= count
    else:
        numb += count  # total += count
    count += 1
print(numb)

'''

2.8 If條件語句

  • if條件語句的基本結構

if語句的完整形式就是:

if <條件判斷1>:
    <執行1>
elif <條件判斷2>:
    <執行2>
elif <條件判斷3>:
    <執行3>
·······
else:
    <執行4>

if語句執行有個特色,它是從上往下判斷,若是在某個判斷上是True,把該判斷對應的語句執行後,就忽略掉剩下的elif和else。

2.9 while循環語句

2.9.1 while循環的格式

while 條件:
    # 循環體
    # 若是條件爲真,那麼循環則執行
    # 若是條件爲假,那麼循環不執行
  • 示例

1.輸出 1-100 內的全部數字。

count = 0
while count < 100:
    count = count + 1
    print(count)

2.9.2 break關鍵字

做用:結束當前這個while循環

  • 示例
##### 猜數字,設定一個理想數字好比:66,讓用戶輸入數字,若是比66大,則顯示猜想的結果大了;若是比66小,則顯示猜想的結果小了;只有等於66,顯示猜想結果正確,而後退出循環。


while True:
    number = input('請輸入一個數字:')
    number = int(number)
    if number > 66:
        print('數字大了')
    elif number == 66:
        print('答對了')
        break
    else:
        print('小了')

2.9.3 continue關鍵字

做用:退出當前循環,繼續下一次循環

  • 示例
#### 使用兩種方法實現輸出 1 2 3 4 5 6   8 9 10 。

count = 0
while count <= 9:
    count = count + 1
    if count == 7:
        continue
    print(count)

2.9.4 while else

做用:若是while 後的條件再也不知足引起循環再繼續,則執行else中的內容。若是是由於 break 引起的循環再也不執行,則不執行else中的內容。

  • 示例
count = 0
while count <= 5:
    print(count)
    count += 1
else:
    print('窗前明月光,疑是地上霜')

2.10 for循環語句

2.11 格式化輸出

​ "%" 運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%佔位符,後面就跟幾個變量或者值,順序要對應好。

佔位符 替換內容
%s 字符串
%d 整數
%% 顯示單獨的%
  • 示例1
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
>>>
  • 示例2
name = input('請輸入姓名:')
age = input('請輸入年齡:')
job = input('請輸入職業:')
hobby = input('請輸入愛好:')
msg = '''
------------ info of Alex Li ----------
Name  : %s
Age   : %s 
job   : %s 
Hobbie: %s 
------------- end ----------------'''
print(msg%(name,age,job,hobby))

### 運行後 ###
請輸入姓名:高啓芝
請輸入年齡:18
請輸入職業:開發
請輸入愛好:你懂的

------------ info of Alex Li ----------
Name  : 高啓芝
Age   : 18 
job   : 開發 
Hobbie: 你懂的 
------------- end ----------------
  • 示例3
num = input('>>>>')

s = '下載進度:%s%%'%(num)

print(s)

2.12.運算符

2.12.1算術運算符

運算符 描述 實例
+ 加 - 兩個對象相加 a + b 輸出結果 31
- 減 - 獲得負數或是一個數減去另外一個數 a - b 輸出結果 -11
* 乘 - 兩個數相乘或是返回一個被重複若干次的字符串 a * b 輸出結果 210
/ 除 - x 除以 y b / a 輸出結果 2.1
% 取模 - 返回除法的餘數 b % a 輸出結果 1
** 冪 - 返回x的y次冪 a**b 爲10的21次方
// 取整除 - 向下取接近除數的整數 10//3 結果爲3

2.12.2 比較運算符

運算符 描述 實例
== 等於 - 比較對象是否相等 (a == b) 返回 False。
!= 不等於 - 比較兩個對象是否不相等 (a != b) 返回 True。
> 大於 - 返回x是否大於y (a > b) 返回 False。
< 小於 - 返回x是否小於y。全部比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 (a < b) 返回 True。
>= 大於等於 - 返回x是否大於等於y。 (a >= b) 返回 False。
<= 小於等於 - 返回x是否小於等於y。 (a <= b) 返回 True。

2.12.3 賦值運算符

運算符 描述 實例
= 簡單的賦值運算符 c = a + b 將 a + b 的運算結果賦值爲 c
+= 加法賦值運算符 c += a 等效於 c = c + a
-= 減法賦值運算符 c -= a 等效於 c = c - a
*= 乘法賦值運算符 c = a 等效於 c = c a
/= 除法賦值運算符 c /= a 等效於 c = c / a
%= 取模賦值運算符 c %= a 等效於 c = c % a
**= 冪賦值運算符 c = a 等效於 c = c a
//= 取整除賦值運算符 c //= a 等效於 c = c // a

2.12.4 邏輯運算符

運算符 邏輯表達式 描述 實例
and x and y 布爾"與" - 若是 x 爲 False,x and y 返回x的值,不然它返回 y 的計算值。 (a and b) 返回 20。
or x or y 布爾"或" - 若是 x 是 True,它返回 x 的值,不然它返回 y 的計算值。 (a or b) 返回 10。
not not x 布爾"非" - 若是 x 爲 True,返回 False 。若是 x 爲 False,它返回 True。 not(a and b) 返回 False
1/
value=0 and 9 
print(value) #0

value=1 and 9 
print(value) #9

對於and:
第一個值若是是轉換成布爾值是假,則value=第一值,沒有必要再日後計算了
第一個值若是是轉換成布爾值是真,則value=第二值,在作後續計算

2/
value=1 or 9   數字遇到or都會轉換爲布爾
print(value) #1

value=0 or 9  
print(value) #9

對於or而言:
第一個值若是是轉換成布爾值是真,則value=第一值,在作後續計算
第一個值若是是轉換成布爾值是假,則value=第二值

2.12.5.成員運算

判斷子元素是否在原字符串(字典,列表,集合)中

  • in(判斷子元素存在)

示例1

>>> value = "我是中國人"
>>> v1 = "中國" in value
>>> print(v1)
True

示例2

while True:
    content = input('請輸入內容:')
    if "退錢" in content:
        print('包含敏感字符')
    else:
        print(content)
        break
  • not in(判斷子元素不存在)

2.12.6 優先級

在沒有()的狀況下not 優先級高於 and,and優先級高於or,即優先級關係爲( )>not>and>or,同一優先級從左往右計算。

Python運算符優先級

如下表格列出了從最高到最低優先級的全部運算符:

運算符 描述
** 指數 (最高優先級)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名爲 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算符
& 位 'AND'
^ | 位運算符
<= < > >= 比較運算符
<> == != 等於運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
not and or 邏輯運算符
相關文章
相關標籤/搜索