Python 奇葩語法

2021-07-22 17:34:20 字數 3000 閱讀 8188

之所以l.extend(4)型別錯誤,而l.extend('c')沒有問題,在於字串是可迭代物件,且 python 中不區分單個字元與字串的區別,均是字串。

注意輸出與返回值之間的關係

>> s = range(5)

>> [print(i) for i in s]01

234out[2]: [none, none, none, none, none]

>> m = (1)

>> m

1>> m = (1, )

>> m

(1, ) # tuple 型別

>> m = 1,

>> m

(1, )

>> l = 

>> len(l)

1

>>> print('%i%%'%(10))

10%>>> print('%'.format(10))

10%

def foo():

return 1, 2 # return (1, 2)

x = foo() # 此時x是元組((1, 2)),

x, y = foo() # 此時x是元組的第乙個元素((1))

# 頗有幾分自動型別推導的意思

接著搗蛋:

def foo():

return 1, 2, 3

x = foo() # 編譯通過

x, y, z = foo() # 編譯通過

x, y = foo() # 編譯不通過,未定義行為,編譯器不知如何進行元組的分配

python legb規則

num = 9

def f1():

num = 10

def f2():

print(num)

f2()

f1()

f2()

輸出為:

9

9

num 不是全域性變數,但對全體函式是可見的,每個函式都會得到 num 拷貝,如果想在函式內部對 num 進行修改,需要用 global 進行修飾。

num = 9

def f1():

global num

num = 10

def f2():

print(num)

f2()

f1()

f2()

910

>> map(none, [1, 2, 3], [4, 5, 6])

[(1, 4), (2, 5), (3, 6)]

>> map(none, [1, 2, 3], [4, 5, 6], [7, 8, 9])

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

map 的第乙個引數為函式物件,後續的全部引數有一種 zip 的含義在。

首先需要明確的一點,not 作用之後的結果為 false/true,

>> [not i for i in (-3, -2, -1, 0, 1, 2, 3)]

[false, false, false, true, false, false, false]

>> not 0

true

>> not none

true

>> not

true

def f(a, l=):

return l

print f(1)

# [1]

print f(2)

# [1, 2]

print f(3)

# [1, 2, 3]

>> l1 = [1, 2, 3, 4]

>> l2 = [20, 30, 40]

>> l1[2:2] = l2

>> l1

[1, 2, 20, 30, 40, 3, 4]

# 實現了插入

>> t = ([1, 2], 3, 4)

>> id(t)

3070311756l

>> t[0][1] = 20

>> t

([1, 20], 3, 4)

>> id(t)

3070311756l

python中如何實現兩個字典合併

>> d1 = 

>> d2 =

法 1:

d3 = dict(d1.items() + d2.items())
該法用時較長,效率不高;

法 2:

d3 = dict(d1, **d2)
這種方法使用的是dict()工廠方法(python 2.2 以上版本),

法 3:

d3 = d1.copy()

d3.update(d2)

據 python 核心程式設計一書所說,從已存在字典中生成新字典的方式dictnew = dict(dictold)叫內建方法dictnew = dictold.copy()會慢一些。

def t(name):

def tt(**kwargs):

print name

print kwargs

return tt

t(1)(name=2)

# 1#

js 轉化為實體符 JS奇葩語法(二)

在你的瀏覽器控制台輸入這一段 猜猜看會得到什麼結果?要想理解這個結果怎麼出來的,需要你對js各種型別的轉換非常熟悉才行。我們試著解析一下這個語法。上文中的 分為兩部分 所以它們分別代表 n 和 b 我們先看第乙個字母 轉化 tostring tostring 解析結果 第2次轉化 undefined...

python初級語法 python語法基礎

寫在最前頭 python 程式對大小寫是敏感的!1 資料型別 1 整數 可以處理任意大小的正負整數 2 浮點數 浮點數運算可能會引入四捨五入的誤差 3 字串 可以是單引號or雙引號括起來的任意文字,但是不包括單引號or雙引號本身。ps 如果字串本身裡含有單引號or雙引號,怎麼辦呢?嘻嘻 可以使用轉義...

python初級語法 Python基礎語法

第一章格式規範 一 標頭檔案 1.注釋行 usr bin python3 coding utf 8 2.匯入模組行 匯入整個模組,格式 import module 匯入模組中全部函式,格式為 from module import 二 識別符號 首字元必須是字母或下劃線。識別符號對大小寫敏感。三 保留...