Python語(yǔ)言基礎(chǔ)

聲明文件字符集

# -*- coding: cp-1252 -*-

數(shù)的表示方法

100 # 十進(jìn)制

0xff00 # 16進(jìn)制

1.23 # 浮點(diǎn)數(shù)

1.23e10 # 浮點(diǎn)數(shù)科學(xué)計(jì)數(shù)法

數(shù)學(xué)計(jì)算

加減乘除取余與其他語(yǔ)言相同

17//3 #不要余數(shù)的除法

5**2 #冪運(yùn)算

2 & 3 #二進(jìn)制按位與

2 | 3 #二進(jìn)制按位或

2 ^ 3 #二進(jìn)制按位異或

2 ~ 3 #二進(jìn)制按位取反

1 << 10 #二進(jìn)制左移——1024

1024 >> 2 #二進(jìn)制右移——256

邏輯運(yùn)算采用and or not表示

成員運(yùn)算in not in

身份運(yùn)算(判斷引用)is is not

運(yùn)算優(yōu)先級(jí):
** ~ +@ -@ * / % // + - >> << & ^ | <= < > >= == != = %= /= //= -= += *= **= is is not in not in not or and

數(shù)學(xué)函數(shù)(import math

abs(x) #絕對(duì)值
ceil(x) #向上取整
floor(x) #向下取整
cmp(x, y) #比較睡毒,返回-1,0,1
exp(x) #e的n次冪
fabs(x) #數(shù)值絕對(duì)值
log(x) #對(duì)數(shù)
log10(x) #含基數(shù)對(duì)數(shù)
max(x1, x2,...) #最大值
min(x1, x2,...) #最小值
modf(x) 分別返回整數(shù)部分和小數(shù)部分
pow(x, y) 冪運(yùn)算
round(x [,n]) 四舍五入
sqrt(x) 平方根
三角函數(shù):acos(x) asin(x) atan(x) atan2(y, x) cos(x) hypot(x, y) # 歐幾里得范數(shù) sin(x) tan(x) degrees(x) #弧度轉(zhuǎn)角度 radians(x) #角度轉(zhuǎn)弧度

常量:pi e

隨機(jī)函數(shù):
choice(seq) #隨機(jī)選取
randrange ([start,] stop [,step]) #指定范圍隨機(jī)數(shù)
random() #0-1隨機(jī)數(shù)
seed([x]) #自定義生成器
shuffle(lst) #序列隨機(jī)排列
uniform(x, y) #隨機(jī)x-y實(shí)數(shù)

條件&循環(huán)

python的else if寫作elif

python不支持switch

while x>0:

for x in range(10):

break中斷整個(gè)循環(huán)

continue跳過(guò)當(dāng)前循環(huán)

pass僅僅用于占位

字符串

單雙引號(hào)可互相嵌套

*可以重復(fù)輸出字符串串

r無(wú)轉(zhuǎn)移字符串

ord(str) chr(num) 字符整數(shù)相互轉(zhuǎn)化

b'adad' bytes類型數(shù)據(jù)

decode('utf-8',errors='ignore') 解碼相應(yīng)字符串

可以通過(guò)數(shù)組方法索引拙绊,可以切片塘匣,可以使用成員運(yùn)算符

格式化字符串: %d #十進(jìn)制 %f #浮點(diǎn)數(shù) %s #字符串 %x #十六進(jìn)制 %o #八進(jìn)制

'%d%s'%(10,'test') #%格式化

'{0:d}{1:s}'.format(10,'test') #format格式化

'''
這是大段字符串
'''
test = 'just a test'
f'{test}'
# 模板字符串
from string import Template
Template('${test}').substitute(test='just a test')
# 模板字符串聲明再實(shí)例

可迭代對(duì)象

列表類似其他語(yǔ)言數(shù)組铛只,表現(xiàn)形式相同煌集,可以不同類型元素

元組是小括號(hào)列表

字典類似對(duì)象叁扫,但是鍵可以是所有不可變對(duì)象地来,包括元組乘寒,字典沒(méi)有順序

集合是不重復(fù)的列表

#用已有可迭代對(duì)象構(gòu)建迭代器
test_1 = iter([1,2,3])
#自定義可迭代對(duì)象
def __iter__(self):
    return self

所有可迭代對(duì)象除了元組都是可變對(duì)象

函數(shù)

#匿名函數(shù)
def test(cb):
    print(cb(2))

test(lambda x:x)

#裝飾器——任何返回函數(shù)的高階函數(shù)
def test(dec_data):
    def wrapper(function):
        def dec(*args, **kw): # 原函數(shù)會(huì)被替換
            print(args, kw)
            print(dec_data)
            return function(*args, **kw)
        return dec
    return wrapper


@test('shit')
def test2(a, b, *args, **kw): # 非關(guān)鍵字參數(shù) 關(guān)鍵字參數(shù)——被解析為dict
    print('just a test')


test2(1, 2, 3, 4,test = 3)
print(test2.__name__)

#偏函數(shù)——固定參數(shù)
from functools import partial


def test(a, b):
    if b < 5:
        print('b<5')
    if a < 5:
        print('a<5')
    
test2 = partial(test,a=1,b=6)

test2()

異步相關(guān)

# 生成器在有值的時(shí)候返回
import time


def test_1():
    time.sleep(1) # 一般用while
    yield print('success')

test_1_runner = test_1()
next(test_1_runner)

# coroutine 協(xié)程
import time
import types
import asyncio

@types.coroutine
def test_2():
    time.sleep(1)
    yield print('success')

async def test_3():
    await test_2()

asyncio.get_event_loop().run_until_complete(asyncio.wait([test_3()]))
# 協(xié)程在事件循環(huán)中執(zhí)行
test_3().send(None)
# 協(xié)程直接執(zhí)行

類相關(guān)

__表示不能被外部訪問(wèn)(私有)

__init__構(gòu)造函數(shù)

(self)所有成員函數(shù)的self參數(shù)表示自引用

class Student(object):表示繼承

# 繼承
class Test_1:
    name = 'name'


class Test_2(Test_1):
    def __init__(self):
        print(self.name)

Test_2()

# 組合依賴注入
class Test_1:
    name = 'name'


class Test_2:
    def __init__(self, com):
        print(com().name)


Test_2(Test_1)

# 限制屬性
class Test(object):
    __slots__ = ('name')

test = Test()
test.name = 1
test.func = 2

# getter setter
class Test(object):
    @property
    def test_1(self):
        return self.__test_1
    @test_1.setter
    def test_1(self,val):
        self.__test_1 = val

__str__()自定義打印顯示

__repr__()交互解釋器中的顯示

__getitem__()數(shù)組方法訪問(wèn)

__getattr__()對(duì)象方法訪問(wèn)

__call__函數(shù)方法

# 枚舉類
from enum import Enum

Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) # 類工廠寫法

# 限制不重復(fù)
from enum import Enum, unique

@unique
class Weekday(Enum):
    Sun = 0 # Sun的value被設(shè)定為0
    Mon = 1
    Tue = 2
    Wed = 3
    Thu = 4
    Fri = 5
    Sat = 6
# 類工廠 傳入類名的诵,父類元組万栅,屬性字典
Hello = type('Hello', (object,), dict(hello=fn))
# 元類 繼承type,重載__new__方法
class Test1(type):
    def __new__(cls, name, bases, attrs): # 第一個(gè)參數(shù)是當(dāng)前實(shí)例
        attrs['name'] = lambda self, value: print(value)
        return type.__new__(cls, name, bases, attrs)

class Test2(metaclass=Test1):
    pass
    

錯(cuò)誤

try拋出西疤,except處理烦粒,finally執(zhí)行完畢

凡是用print可以打印的地方,都可以用assert斷言替代

def foo(s):
    n = int(s)
    assert n != 0, 'n is zero!'
    return 10 / n

logging可以輸出到文件代赁,并不會(huì)拋出錯(cuò)誤

pdb.set_trace()設(shè)置斷點(diǎn)


星空.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扰她,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芭碍,更是在濱河造成了極大的恐慌徒役,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豁跑,死亡現(xiàn)場(chǎng)離奇詭異廉涕,居然都是意外死亡泻云,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門狐蜕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宠纯,“玉大人,你說(shuō)我怎么就攤上這事层释∑殴希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵贡羔,是天一觀的道長(zhǎng)廉白。 經(jīng)常有香客問(wèn)我,道長(zhǎng)乖寒,這世上最難降的妖魔是什么猴蹂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮楣嘁,結(jié)果婚禮上磅轻,老公的妹妹穿的比我還像新娘。我一直安慰自己逐虚,他們只是感情好聋溜,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著叭爱,像睡著了一般撮躁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上买雾,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天把曼,我揣著相機(jī)與錄音,去河邊找鬼漓穿。 笑死祝迂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的器净。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼当凡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼山害!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起沿量,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浪慌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后朴则,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體权纤,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汹想。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片外邓。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖古掏,靈堂內(nèi)的尸體忽然破棺而出损话,到底是詐尸還是另有隱情,我是刑警寧澤槽唾,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布丧枪,位于F島的核電站,受9級(jí)特大地震影響庞萍,放射性物質(zhì)發(fā)生泄漏拧烦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一钝计、第九天 我趴在偏房一處隱蔽的房頂上張望恋博。 院中可真熱鬧,春花似錦葵蒂、人聲如沸交播。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)秦士。三九已至,卻和暖如春永高,著一層夾襖步出監(jiān)牢的瞬間隧土,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工命爬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曹傀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓饲宛,卻偏偏與公主長(zhǎng)得像皆愉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艇抠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)幕庐,也就是一...
    悟名先生閱讀 4,153評(píng)論 0 13
  • 1.簡(jiǎn)介 Python是一種什么樣的語(yǔ)言? 它是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言家淤。Python語(yǔ)...
    夕醒閱讀 641評(píng)論 0 4
  • 前言 ||| 第二章 使用ArcPy編寫腳本 Python支持大部分在其他語(yǔ)言中出現(xiàn)的編程結(jié)構(gòu)异剥。在本章內(nèi)容中,我們...
    muyan閱讀 90,074評(píng)論 10 55
  • 享譽(yù)海內(nèi)外的方法學(xué)家絮重、國(guó)際職業(yè)培訓(xùn)師吳甘霖在《方法總比問(wèn)題多》中提出這樣一個(gè)問(wèn)題冤寿,對(duì)每一個(gè)人來(lái)說(shuō)歹苦,當(dāng)遇到問(wèn)...
    c1a841adf25d閱讀 543評(píng)論 0 0
  • 昨天晚上還沒(méi)有到家殴瘦,女兒給我打電話,說(shuō):“媽媽亮蛔,你猜我數(shù)學(xué)考了多少分痴施?” 聽(tīng)著她興奮的聲音,我說(shuō):“100分”究流。 ...
    曉菲心天地閱讀 600評(píng)論 0 5