python腳本基礎總結


1. 注釋

    ①單行注釋:#單行注釋

    ②多行注釋: '''

                         三個單引號,多行注釋符

                      '''

    ③中文注釋:#coding=utf-8 或者 #coding=gbk

2.輸入輸出

     ① 輸入:  3.0后的python輸出為print函數,print(); 如  print('python');  #輸出python

                多個字段時可中間逗號隔開, 如  print('hello','python','user');  #輸出 hello python user   默認中間有一個空格。

     ②輸出:input函數,如:name=input();  

3.數據類型

   ①整數:Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1100-80800,等等。

   ②浮點數:浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。

   ③字符串:字符串是以單引號'或雙引號"括起來的任意文本,比如'abc'"xyz"等等。

           轉義字符\可以轉義很多字符,比如\n表示換行,\t表示制表符,字符\本身也要轉義,所以\\表示的字符就是\。

 >>> print('I\'m learning\nPython.') I'm learning Python.

           如果字符串里面有很多字符都需要轉義,就需要加很多\,為了簡化,Python還允許用r''表示''內部的字符串默認不轉義。如:

 >>> print(r'\\\t\\') \\\t\\

           如果字符串內部有很多換行,用\n寫在一行里不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容,可以自己試試:

 >>> print('''line1  ... line2  ... line3''') line1 line2 line3

     ④布爾值 :布爾值和布爾代數的表示完全一致,一個布爾值只有TrueFalse兩種值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布爾值(請注意大小寫)。

       and運算是與運算,只有所有都為Trueand運算結果才是True

 or運算是或運算,只要其中有一個為Trueor運算結果就是True
not運算是非運算,它是一個單目運算符,把True變成FalseFalse變成True

     ⑤空值:空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值

4.變量和常量
 ① 變量在程序中就是用一個變量名表示了,變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭等號。 如:a = 1 ; t_007 = 'T007'; Answer = True
 ②  =  是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量。如:a = 123 # a是整數

    ③常量:在Python中,通常用全部大寫的變量名表示常量:PI = 3.14159265359

5.編碼

    ①對於單個字符的編碼,Python提供了ord()函數獲取字符的整數表示,chr()函數把編碼轉換為對應的字符:

 >>> ord('A')  65  >>> ord('中')  20013  >>> chr(66)  'B'  >>> chr(25991)  '文'

   ②Python對bytes類型的數據用帶b前綴的單引號或雙引號表示:

 x = b'ABC' 

     要注意區分'ABC'b'ABC',前者是str,后者雖然內容顯示得和前者一樣,但bytes的每個字符都只占用一個字節。

     以Unicode表示的str通過encode()方法可以編碼為指定的bytes,例如:

   >>> 'ABC'.encode('ascii')
   b'ABC'
   >>> '中文'.encode('utf-8')
   b'\xe4\xb8\xad\xe6\x96\x87'

   ③ 在bytes中,無法顯示為ASCII字符的字節,用\x##顯示。反過來,如果我們從網絡或磁盤上讀取了字節流,那么讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法:

 >>> b'ABC'.decode('ascii')  'ABC'
要計算str包含多少個字符,可以用len()函數;len()函數計算的是str的字符數,如果換成byteslen()函數就計算字節數:
>>> len('ABC') 3

    ④由於Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:

 #!/usr/bin/env python3  # -*- coding: utf-8 -*- 

        第一行注釋是為了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個注釋;

        第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。

        申明了UTF-8編碼並不意味着你的.py文件就是UTF-8編碼的,必須並且要確保文本編輯器正在使用UTF-8 without BOM編碼

>>> len(b'ABC') 3
可見,1個中文字符經過UTF-8編碼后通常會占用3個字節,而1個英文字符只占用1個字節。
6 格式化

    %運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,后面就跟幾個變量或者值,順序要對應好。如果只有一個%?,括號可以省略。

 >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)  'Hi, Michael, you have $1000000.'

        常見的占位符有:

%d 整數
%f 浮點數
%s 字符串
%x 十六進制整數

      其中,格式化整數和浮點數還可以指定是否補0和整數與小數的位數:

 >>> '%2d-%02d' % (3, 1)  ' 3-01'  >>> '%.2f' % 3.1415926  '3.14' 

      如果你不太確定應該用什么,%s永遠起作用,它會把任何數據類型轉換為字符串:

 >>> 'Age: %s. Gender: %s' % (25, True)  'Age: 25. Gender: True' 

      有些時候,字符串里面的%是一個普通字符怎么辦?這個時候就需要轉義,用%%來表示一個%

 >>> 'growth rate: %d %%' % 7  'growth rate: 7 %'
7. list和tuple
list和tuple是Python內置的有序集合,一個可變,一個不可變。
一、list
>>> classmates = ['Michael', 'Bob', 'Tracy']
list是一種有序的集合,可以隨時添加和刪除其中的元素。用索引來訪問list中每一個位置的元素,記得索引是從0開始的

倒敘取值: 用-1做索引,直接獲取最后一個元素 如:>>> classmates[-1] >>> classmates[-2]
       要把某個元素替換成別的元素,可以直接賦值給對應的索引位置:>>> classmates[1] = 'Sarah'
list里面的元素的數據類型也可以不同:>>> L = ['Apple', 123, True]
list元素也可以是另一個list:>>> s = ['python', 'java', ['asp', 'php'], 'scheme'] 取值:print(s[2][0]) #'asp'
如果一個list中一個元素也沒有,就是一個空的list,它的長度為0
常用方法:
    len()函數: 可以獲得list元素的個數;最后一個元素的索引是len(classmates) - 1
append(): 往list中追加元素到末尾。 >>> classmates.append('Adam')

insert():元素插入到指定的位置,比如索引號為1的位置:>>> classmates.insert(1, 'Jack')

pop():刪除list末尾的元素;要刪除指定位置的元素,用pop(i)方法,其中i是索引位置:>>> classmates.pop(1)

二、tuple

>>> classmates = ('Michael', 'Bob', 'Tracy')
   tuple一旦初始化就不能修改
它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0]classmates[-1],但不能賦值成另外的元素
因為tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。
 只有1個元素的tuple定義時必須加一個逗號,
>>> t = (1,)
>>> t
(1,)
 最后來看一個“可變的”tuple:這個tuple定義的時候有3個元素,分別是'a''b'和一個list。
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
8.判讀語句

if語句執行有個特點,它是從上往下判斷,如果在某個判斷上是True,把該判斷對應的語句執行后,就忽略掉剩下的elifelse,所以,請測試並解釋為什么下面的程序打印的是teenager

age = 20
if age >= 6:
    print('teenager')
elif age >= 18:
    print('adult')
else:
    print('kid')

if判斷條件還可以簡寫,比如寫:

if x:
    print('True')

只要x是非零數值、非空字符串、非空list等,就判斷為True,否則為False

s = input('birth: ')
birth = int(s)
if birth < 2000:
    print('00前')
else:
    print('00后')

9.循環

Python的循環有兩種,一種是for...in循環,依次把list或tuple中的每個元素迭代出來,看例子:

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

如果要計算1-100的整數之和,從1寫到100有點困難,幸好Python提供一個range()函數,可以生成一個整數序列,再通過list()函數可以轉換為list。比如range(5)生成的序列是從0開始小於5的整數:

>>> list(range(5))
[0, 1, 2, 3, 4])

第二種循環是while循環,只要條件滿足,就不斷循環,條件不滿足時退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

在循環內部變量n不斷自減,直到變為-1時,不再滿足while條件,循環退出。

break:

在循環中,break語句可以提前退出循環

n = 1
while n <= 100:
    if n > 10: # 當n = 11時,條件滿足,執行break語句
        break # break語句會結束當前循環
    print(n)
    n = n + 1
print('END')

continue

在循環過程中,也可以通過continue語句,跳過當前的這次循環,直接開始下一次循環。

n = 0
while n < 10:
    n = n + 1
    if n % 2 == 0: # 如果n是偶數,執行continue語句
        continue # continue語句會直接繼續下一輪循環,后續的print()語句不會執行
    print(n)

10.
dict和set
一.數據字典:dict 
①使用鍵-值(key-value)存儲,具有極快的查找速度。由於一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉。例如:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95
 
        

   ②添加:把數據放入dict的方法,除了初始化時指定外,還可以通過key放入:

      >>> d['Adam'] = 67

       要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:
 >>> 'Thomas' in d  False 
      二是通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
 >>> d.get('Thomas')
 >>> d.get('Thomas', -1) -1

          注意:返回None的時候Python的交互式命令行不顯示結果。

   ③刪除: 要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除:

 >>> d.pop('Bob')  75  >>> d {'Michael': 95, 'Tracy': 85} 
 請務必注意,dict內部存放的順序和key放入的順序是沒有關系的。

二.set
set和dict類似,也是一組key的集合,但不存儲value。由於key不能重復,所以,在set中,沒有重復的key。
>>> s = set([1, 2, 3]) >>> s {1, 2, 3}
add(key)方法可以添加元素到set中
>>> s.add(4) >>> s {1, 2, 3, 4}

  remove(key)方法可以刪除元素:

>>> s.remove(4)

  set可以看成數學意義上的無序和無重復元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作:

>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
11.函數

    要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數abs,只有一個參數。可以直接從Python的官方網站查看文檔:

     http://docs.python.org/3/library/functions.html#abs

    也可以在交互式命令行通過help(abs)查看abs函數的幫助信息。

    調用abs函數:

 >>> abs(-20)  20
調用Python的函數,需要根據函數定義,傳入正確的參數。如果函數調用出錯,一定要學會看錯誤信息

   數據類型轉換

   Python內置的常用函數還包括數據類型轉換函數,比如int()函數可以把其他數據類型轉換為整數:

>>> int('123') 123 >>> int(12.34) 12 >>> float('12.34') 12.34 >>> str(1.23) '1.23' >>> str(100) '100' >>> bool(1) True >>> bool('') False
一.定義函數
在Python中,定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用return語句返回。

   定義函數時,需要確定函數名和參數個數;

   如果有必要,可以先對參數的數據類型做檢查;

   函數體內部可以用return隨時返回函數結果;

   函數執行完畢也沒有return語句時,自動return None

   函數可以同時返回多個值,但其實就是一個tuple。


如:請定義一個函數quadratic(a, b, c),接收3個參數,返回一元二次方程:ax2 + bx + c = 0的兩個解。

   空函數

   如果想定義一個什么事也不做的空函數,可以用pass語句:

def nop(): pass
二.參數設置

   ①默認參數

     

     power(5)調用時,第二個參數默認為2;power(5,3),第二個參數傳遞,n=3.

    注意:

    一是必選參數在前,默認參數在后,否則Python的解釋器會報錯(思考一下為什么默認參數不能放在必選參數前面);

   二是如何設置默認參數。當函數有多個參數時,把變化大的參數放前面,變化小的參數放后面。變化小的參數就可以作為默認參數。

    Python函數在定義的時候,默認參數L的值就被計算出來了,即[],因為默認參數L也是一個變量,它指向對象[],每次調用該函數,如果改變了L的內容,則下次調用時,默認參     數的內容就變了,不再是函數定義時的[]了。

    所以,定義默認參數要牢記一點:默認參數必須指向不變對象!

def add_end(L=None): if L is None: L = [] L.append('END') return L

 ②可變參數

 可變參數就是傳入的參數個數是可變的.
把函數的參數改為可變參數:僅僅在參數前面加了一個*號。
 如果已經有一個list或者tuple,要調用一個可變參數,在list或tuple前面加一個*號,把list或tuple的元素變成可變參數傳進去。
 

    *nums表示把nums這個list的所有元素作為可變參數傳進去。

  ③關鍵字參數

    可變參數允許你傳入0個或任意個參數,這些可變參數在函數調用時自動組裝為一個tuple。而關鍵字參數允許你傳入0個或任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。

      

      

 比如,在person函數里,我們保證能接收到nameage這兩個參數,但是,如果調用者願意提供更多的參數,我們也能收到。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM