python3入門與進階(一)

最近學習了python3的語法,整理記錄一下;
語法是編程的先決條件,精通語法是編好程序的必要條件;

導語

給我最大的感受是:這個語言的編寫,竟然不使用 { }來控制代碼塊的區域,而是使用縮進來分割代碼塊,因此使用python語言編寫的代碼不能壓縮混淆。可以簡寫就簡寫,毫不拖泥帶水

在python編程的世界裏面,廣爲傳頌的名言:Life is Simple ,I Use Python;python語言相對於其餘語言來講,最大的特色是:簡潔。爲何呢?來看一個變量交互的例子:python

# 不少語言中,須要一個臨時變量來交換
temp = x
x = y
y = temp

#  在python中
x,y = y,x

python的功能很強大,能夠作爬蟲,自動化運維與自動化測試,大數據與數據分析(Spark),AI(機器學習 Tensor Flow),Web開發(Flask,Django),腳本處理。還能夠跨平臺運行,是面向對象的語言,又有動態腳本的特性(和Javascript同樣,屬於解釋型語言,不用編譯成二進制文件;編譯型語言會編譯成二進制文件供機器執行,相對而言運行效率高)。編程

python語言也被稱做爲:膠水語言,能夠混合其餘如C++,Java等來編程;能夠把其餘語言製做的各類模塊(尤爲是C/C++)很輕鬆的聯結在一塊兒。數據結構

很喜歡的兩句話:app

#  python 之禪
Simple is better than complex.
簡潔勝於複雜;
這和Steve Jobs的蘋果系列產品的理念是一致的

Now is better than never. Although never is often better than right now.
作也許好過不作,但不假思索就動手還不如不作;
勤于思考,分析致使問題的緣由,不作無用功
  • 編程是爲了解決咱們的問題而存在的一個工具。
  • 當遇到問題的時候,隨手拿起python,編寫一個工具,這纔是python正確的打開方式
  • 什麼是紮實的編程功底:數據結構纔是基礎

基礎語法

代碼:是現實世界事物在計算機世界中的 映射
寫代碼:是將現實世界中的事物用計算機語言來描述
在計算機中,怎麼樣來表示現實世界的事物?
  • 基本數據類型
基本數據類型

基本數據類型

  • Number(數字)運維

    • 整數:int
    • 浮點數:float
    • 布爾:bool
    • 複數:complex
  • Str(字符串)
  • List(列表)
  • Tuple(元組)
  • Sets(集合)
  • Dict(字典)

python3中的浮點數不分精度(單/雙),整型不分短和長(short / long);布爾值必定是大寫的True / False;列表使用[ ],元組使用( ),集合使用{ },字典使用{ k:v }機器學習

type(1+1.0)  # 1.1 float
type(2 / 2) #  1.0  float
type(2 // 2)  #  1  int

a = 123 # 不須要寫變量的類型
isinstance(a,int) # True

上面代碼裏面,type()函數來檢查變量的數據類型,也可使用isinstance來判斷一個變量是否屬於這個類型;區別在於:函數

type()不會認爲子類是一種父類類型。

isinstance()會認爲子類是一種父類類型。

/ :表示除法,結果自動轉爲float類型;
// :表示整除,求的是整數部分,不會四捨五入;
聲明變量不須要在前面寫上變量的類型,直接寫一個變量名就行,不像其餘語言要標明數據類型,或者是寫上var/ let/ const工具

字符串,元組,列表
字符串是不可變的;這三種都是有序的
  • 重複表示
print("icessun"*3)
>>> 'icessunicessunicessun'

# 元組的重複 元組裏面能夠有不一樣的數據類型  (1,‘1’,True,[1,2,4])
(1,2,3)*3
>>> (1,2,3,1,2,3,1,2,3)

# 在元組後面添加元素 使用append()方法
b = [1,2,3]
b.append(4)
print(b)
>>> [1,2,3,4]

# 元組使用+相加
(1,2,3)+(2,3,4)
>>> (1,2,3,2,3,4)

# 列表的重複
['ice','icess']*3
>>> ['ice','icess','ice','icess','ice','icess']
  • 切片操做
[起始位置,長度];

截取從起始位置,長度個字符;
長度負數表示刪除從字符串末尾往前數的字符個數;
長度省略表示到末尾;
長度要是超過可截取的位數,以可截取的位數爲標準;學習

a = 'icessun'

print(a[0:4])
>>> 'ices'

print(a[0:-2])
>>> 'icess'

print(a[0:])
>>> 'icessun'

print(a[1:-0])
>>> '  '   # 表示截取了一個空字符串

print(a[1:0])
>>> '  '   # 表示截取了一個空字符串

print(a[:-4])
>>> 'ice'  

print(a[-4:])
>>> 'ssun'   # 起始位置爲負數是表示從末尾開始數(從1開始數)到末尾,要是起始位置是負數,那麼步長必定省略,否者獲得的是空字符串
  • 內部元素的訪問
# 都是經過索引來訪問的
"icessun"[0]
>>>  'i'

['a','b','c'][0]
>>>  'a'

('a',2,True)[2]
>>> True 

# 均可以使用len()這個函數來求長度
  • 單一的字符串索引操做獲得的是字符串,可是一個列表的切片操做獲得的是一個列表
a = 'icessun'

type(a[0:4])
>>>  <class 'str'>

["ice","icess","icessun"][0]
>>> 'ice'  # 是字符串

["ice","icess","icessun"][0:2]
>>> ["ice","icess"]  # 是列表
  • 注意
type( (1) )  
>>> <class 'int'>

type( ('a') )  
>>> <class 'str'>

通常來講:( )能夠表示元組,也能夠表示數學運算的優先級;因此當想表示一個只有一個元素的元組,應該這樣:( (1,) );在元素的 後面加上一個逗號;表示一個空的元組:( ( ) )測試

集合

無序的,不能經過索引訪問,裏面的元素不重複
  • 判斷一個元素是否在集合裏面,這個方法也適合上面的數據類型
1 in {1,2}
>>> True

3 not in {1,2,3,4}
>>> False
  • 集合的操做
# 集合的差集  去掉相同的元素,之前面集合爲標準,從一個集合裏面去掉後面集合特有的元素
{1,2,3}-{2,3}
>>> {1}
{1,2,3}-{4}
>>> {1,2,3}
{1}-{4,2,3}
>>> {1}

# 集合的交集 找兩個集合的公有元素
{1,2,3}&{2,3}
>>> {2,3}
{1,3}&{2}
>>> set( )  # 表示空集  len(set()) -----> 0

# 集合的並集 把兩個集合合併在一塊兒,按照從前日後的順序,去掉相同的元素
{1,2,4}|{2,3}
>>> {1,2,4,3}
  • 注意
# 空集合的表示
set()

字典

{ key : value},鍵值對的形式,相似於Javascript中的對象
  • key的取值是不可變的類型:int,str,元組
  • 空的字典:{ }
相關文章
相關標籤/搜索