Python語言基礎特性(一)

1. 字符串格式化輸出

age=24
print('age=%d' % age)
print('age={}'.format(age))
print(f'age={age}')

在這裏插入圖片描述
對於輸入函數input,需要注意的是返回的是str類型對象。

2. 轉義字符和原始字符

+字符,轉義字符:\r、\n、\、\a…
r+字符,原始字符:print(r'D:\note'),含義就是讓\n不再是轉義字符換行的效果,就是字符’\n’

3. python中沒有++操作

同樣沒有--操作
字符串後沒有隱含的\0

4. 動態強類型

Python是一種 動態強類型 編程語言.
動態是指運行時進行變量類型檢查; 強類型 指類型檢查嚴格, 並且"偏向於"不允許隱式轉換.
列表、字典的值可變,其它int、float、tuple、str等均不可以改變。

a=[10,'abc',[1,2,3],{'name':'zhangwei','age':20}]
'''變量a指向的對象是一個擁有4個元素的列表'''
a[3]['age']=18 
print(a)
[10, 'abc', [1, 2, 3], {'name': 'zhangwei', 'age': 18}]

5. + 用於字符串連接運算, * 用於字符重複

a,b='abc','ABC'
print(a+b)
print(a*3)
abcABC
abcabcabc

6.引用和對象

在python中一切皆對象,函數、模塊、文件等都是對象。
你是否聽過Key_Value結構?python對象特性:KTV
K 對象標識,可通過內建函數id()取獲取某個對象在內存中的唯一標識。
T 對象類型,可通過內建函數type()獲取對象的類型。
V 表示對象中具體保存的內容. 有些對象的值可以修改, 有些對象的值不能修改, 這個稱爲對象的 “可變性”。

而變量類似於給對象貼標籤,標籤指向的對象是可以改變的。

a,b='str','c'
a=a+b
print(a)
strc

str對象不可以改變,上述一共產生了3個str對象,標籤a開始時候執行str對象,之後標籤a指向strc,像a這種標籤就是python中的引用。

7.列表解析

a=[x**2 for x in range(10)]
print(a)

b=[x*2 for x in a if x%2==1]
print(b)

在這裏插入圖片描述

8.作用域和生命週期

Python中, def、class、lamda 會改變變量的作用域,if、else、 elif、 while,、for、 try/except不會改變變量的作用域。
在這裏插入圖片描述
在C語言中,如果是{}內的變量,作用域僅限於{}內,而python不是這樣的。

for i in range(10):
    pass
print(i)

也就是說上述代碼是合法的。

內建函數globals()返回了全局作用域下都有哪些變量, 內建函數locals()返回了局部作用域下都有哪些變量。

9.多元賦值

x, y = 1, 2等價於x=1,y=2
在C語言中,要交換兩個同類型變量的值,需要創建第三個同類型變量。醋壺裝醋,油壺裝油,要想讓醋壺裝油,油壺裝醋,我們需要第三個空壺來週轉。可是python不需要這樣,python實現如下:

a,b=10,20
a,b=b,a
print(a,b,sep='\n')

sep是print的一個參數,表示打印元素的分隔符,默認爲一個空格。

10.重新認識運算符號/

在C語言中,當需要做除法時候,我們會使用/。如果除數和被除數都是int類型,那麼結果只能保留整數位,相當於C語言在做完除法之後,還隱式轉換了結果的類型。
在這裏插入圖片描述
而在python中,/就僅僅是除法,結果是多少就是多少。如果想要C語言那種除法結果不保留小數位,那麼就有了//。同時python還提供了可以得到商和餘數一組結果的方法:divmod

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章