Python極速上手教學

2020-10-20 12:01:02

Python極速上手教學

前言:
本教學適用於有一定其它語言基礎的博友,因為程式語言都是相通的,並且Python相比於其它語言應該更容易接受。如果有博友最近需要用Python,本教學可以快速的讓你上手Python開發。但這只是為了簡單應用Python而寫的博文,畢竟每一門程式語言都有它的優秀與閃光處,所以,相比想要真正掌握Python的精髓,本文只能作為簡單入門。

一、Python基礎語法

1.首先,對於一門語言,我們需要知道如何在螢幕上輸出結果。

比如C語言:

printf("Hello, World! \n");

C++語言:

cout << "Hello World";

C#語言:

Console.Writeline("Hello, World!");

那麼對於Python語言是:

print ("Hello, Python!")

2.Python 的程式碼塊不使用大括號 {} 來控制類,函數以及其他邏輯判斷。python 最具特色的就是用縮排來寫模組。

比如C語言用{}寫模組

if(True)
{
printf("True");//是否縮排都沒關係
}
else
{
	print ("False");//是否縮排都沒關係
}

但是,Python用縮排來控制模組

if True:
    print ("True")
else:
    print ("False")

3.Python 可以使用單引號( ’ ),三引號( ‘’’ ) 來表示字串

一般用單引號表示字串,比如:

name='Meekater'

三引號可以由多行組成,編寫多行文字的快捷語法,也就是字串太長的時候,用三引號。比如:

resume=''' 他是一個帥氣的人,帥氣的人,帥氣的人,帥氣的人,帥氣的人,帥氣的人,
帥氣的人,帥氣的人,帥氣的人,帥氣的人,帥氣的人,
帥氣的人,帥氣的人,
帥氣的人,
帥氣的人,
帥氣的人,
帥氣的人... '''

4.Python變數如何賦值?

Python 中的變數賦值不需要型別宣告。直譯器會分配指定記憶體,並決定什麼資料可以被儲存在記憶體中(也就是自動識別資料型別)。

counter = 100 # 賦值整型變數
miles = 1000.0 # 浮點型
name = 'John' # 字串

二、Python變數型別

1.Python字串

s = 'abcdef'
  • 可以使用 [頭下標:尾下標] 來擷取相應的字串,其中下標是從 0 開始算起。[頭下標:尾下標] 獲取的子字串包含頭下標的字符,但不包含尾下標的字元
    在這裡插入圖片描述
s = 'abcdef'
s[1:5] #由上圖可以看出 擷取結果為'bcde'
  • 加號(+)是字串連線運運算元,星號(*)是重複操作。如下範例:
str = 'Hello World!'
print (str * 2)       # 輸出字串兩次
print (str + "TEST")  # 輸出連線的字串

2.Python列表(類似C語言中的陣列,等同C語言中的結構體)

  • List(列表) 是 Python 中使用最頻繁的資料型別。
  • 列表用 [ ] 標識。
  • 列表就是個大箱子,箱子裡面可以裝各種型別的資料。
  • 列表中值的切割也可以用到變數 [頭下標:尾下標] ,就可以擷取相應的列表,從左到右索引預設 0 開始,從右到左索引預設 -1 開始,下標可以為空表示取到頭或尾。
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ] #這是一個列表,裡面可以裝各種型別的資料
print (list)               # 輸出完整列表
print (list[0])            # 輸出列表的第一個元素
print (list[1:3])          # 輸出第二個至第三個元素 
print (list[2:])           # 輸出從第三個開始至列表末尾的所有元素
print (tinylist * 2)       # 輸出列表兩次

以上範例輸出結果:

['runoob', 786, 2.23, 'john', 70.2]
runoob
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']
  • 列表最常見的用法是與For迴圈相結合。可以用列表來儲存計算的臨時資料,然後,用For變數讀取資料,或者把列表資料儲存問json格式檔案等。

3.Python 元組(一般個人程式碼,列表完全可以代替元組)

  • 元組用 () 標識
  • 元祖和列表唯一的區別是,元組是唯讀的,不能修改元組中的資料;而列表是可讀寫的,可以修改列表中的資料
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000    # 元組中是非法應用,不能修改元組中的值
list[2] = 1000     # 列表中是合法應用,可以修改列表中的值

4.Python 字典

  • 字典(dictionary)是除列表以外python之中最靈活的內建資料結構型別。列表是有序的物件集合,字典是無序的物件集合。
  • 字典用"{ }"標識。
  • 字典由索引(key)和它對應的值value組成。
  • 字典和列表最大區別是,列表是有序的而字典是無序的,字典通過鍵進行讀取資料。
# 字典定義和賦值方式一
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

 # 字典定義和賦值方式二
tinydict = {'name': 'runoob','code':6734, 'dept': 'sales'}
 
 
print dict['one']          # 輸出鍵為'one' 的值
print dict[2]              # 輸出鍵為 2 的值
print tinydict             # 輸出完整的字典
print tinydict.keys()      # 輸出所有鍵
print tinydict.values()    # 輸出所有值

4.Python 資料轉換

舉一個例子,將物件轉為字串

num=6
strNum=str(num)

在這裡插入圖片描述

三、Python運運算元

  • 比較常用的如
    算術運運算元:加減乘除(+ - * /) ,等等
    比較運運算元:等於(==);不等於(!=);大於(>);小於(<) ,等等
    邏輯運運算元:and ; or ; not
  • For迴圈中最常用的:
    成員運運算元(in ; not in )
list = [1, 2, 3, 4, 5 ]
for a in list:
     print(a)
  • 詳細見菜鳥教學(https://www.runoob.com/python/python-operators.html)

四、Python if語句

name = 'luren'
if name == 'python':         # 判斷變數是否為 python 
    print 'welcome boss'     # 並輸出歡迎資訊
else:
    print name               # 條件不成立時輸出變數名稱

五、Python for 迴圈語句

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        #最常用的遍歷列表的方法
   print ('當前水果 :', fruit)

六、Python While 迴圈語句

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

七、Python 函數

  • def關鍵字 定義函數
def printme( str ):
   print str
   return
  • 呼叫函數
printme("我要呼叫使用者自定義函數!")
printme("再次呼叫同一函數")
  • 輸出結果
我要呼叫使用者自定義函數!
再次呼叫同一函數

八、Python 函數高階(選看)

1.引數傳遞

  • 可更改(mutable):外部傳入函數中的值,在函數內部的修改會直接影響函數外部值。

  • 不可更改(immutable)物件:外部傳入函數中的值,在函數內部的修改不會影響函數外部值。

  • 在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。

  • 不可更改範例:

def ChangeInt( a ):
    a = 10 #因為b是numbers型別,因此函數內的修改,並不會影響函數外的值
 
b = 2
ChangeInt(b) 
print b # 結果仍然是 2
  • 可更改範例:
def changeme( mylist ):
   mylist.append([1,2,3,4])   #因為mylist 是列表型別,因此函數內的修改,會直接影響函數外的值
   print "函數內取值: ", mylist
   return
 
# 呼叫changeme函數
mylist = [10,20,30]
changeme( mylist )
print "函數外取值: ", mylist

輸出結果

函數內取值:  [10, 20, 30, [1, 2, 3, 4]]
函數外取值:  [10, 20, 30, [1, 2, 3, 4]]

2.return 語句

一般來說,得到函數計算的結果,才是我們呼叫函數的目的,通過return語句返回函數中我們想要的結果

# 可寫函數說明
def sum( arg1, arg2 ):
   # 返回2個引數的和."
   total = arg1 + arg2
   print "函數內 : ", total
   return total
 
# 呼叫sum函數
total = sum( 10, 20 )

3.函數引數

以下是呼叫函數時可使用的正式引數型別:

  • 必備引數:須以正確的順序傳入函數。呼叫時的數量必須和宣告時的一樣。
#可寫函數說明
def printinfo( name, age ):
   "列印任何傳入的字串"
   print "Name: ", name
   print "Age ", age
   return
 
#呼叫printinfo函數
printinfo( "miki" ,50) #傳參順序必須與宣告一致=
  • 關鍵字引數:鍵字引數允許函數呼叫時引數的順序與宣告時不一致
#可寫函數說明
def printinfo( name, age ):
   "列印任何傳入的字串"
   print "Name: ", name
   print "Age ", age
   return
 
#呼叫printinfo函數
printinfo( age=50, name="miki" ) #傳參順序可以與宣告不一致=
  • 預設引數:呼叫函數時,預設引數的值如果沒有傳入,則被認為是預設值。
#可寫函數說明
def printinfo( name, age = 35 ):
   "列印任何傳入的字串"
   print "Name: ", name
   print "Age ", age
   return
 
#呼叫printinfo函數
printinfo( age=50, name="miki" )
printinfo( name="miki" ) # 使用預設引數
  • 不定長引數:你可能需要一個函數能處理比當初宣告時更多的引數
# 可寫函數說明
def printinfo( arg1, *vartuple ):
   print "輸出: "
   print arg1
   for var in vartuple:
      print var
   return
 
# 呼叫printinfo 函數
printinfo( 10 )
printinfo( 70, 60, 50 ) # 可以傳入不定長的引數70代表arg1的傳參,60和50為不定長vartuple的傳參

九、使用別人編寫好的Python程式碼(包)

  • 所謂包,就是一個含有__init__.py 檔案的資料夾。init.py 用於標識當前資料夾是一個包。然後這個資料夾中放著很多以 .py 結尾的 Python 檔案。每個python檔案對應一類功能。
  • 那麼如何參照這些包呢?很簡單,可以使用 import 語句來引入模組
    如引入OS包(它對應的就是一個命名為OS的資料夾,然後裡面有很多子資料夾(子包)和python檔案)
import OS
  • 因為一個包裡面有很多python檔案(一個python檔案叫做一個模組),那麼我們如何引入特定的某些模組呢?也很簡單,from 語句讓你從模組中匯入一個指定的部分到當前名稱空間中。如要匯入模組 fib 的 fibonacci 函數,使用如下語句:
from fib import fibonacci

那麼講到包,Python有幾個優秀的基礎包,也是常用的,比如Numpy ,Pandas是進行機器學習等的必用包,有餘力的,可以在我這兩篇文章中學習。
Python之numpy包學習
python之pandas學習

總結

python最常用的變數型別:字串,列表,字典,你要熟悉。
python的for迴圈,if條件語句,while迴圈你要會用。
python的基本函數你要會寫,能看懂。
python的包你要會調。

大概這些吧…
僅做快速上手,想要精懂Python,還需要很多很多的努力…我也一樣