日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python 基础语法(一)

發(fā)布時(shí)間:2025/4/16 python 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 基础语法(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、基本概念

  1. python中數(shù)有四種類型:整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。

  • 整數(shù), 如 1
  • 長(zhǎng)整數(shù) 是比較大的整數(shù)
  • 浮點(diǎn)數(shù) 如 1.23、3E-2
  • 復(fù)數(shù) 如 1 + 2j、 1.1 + 2.2j

  2. 字符串(字符的序列)

  • python中單引號(hào)和雙引號(hào)使用完全相同。
  • 使用三引號(hào)('''或""")可以指定一個(gè)多行字符串。
  • 轉(zhuǎn)義符 '\'
  • 自然字符串, 通過在字符串前加r或R。 如 r"this is a line with \n" 則\n會(huì)顯示,并不是換行。
  • python允許處理unicode字符串,加前綴u或U, 如 u"this is an unicode string"。
  • 字符串是不可變的。
  • 按字面意義級(jí)聯(lián)字符串,如"this " "is " "string"會(huì)被自動(dòng)轉(zhuǎn)換為this is string。

  3. 標(biāo)識(shí)符的命名

  • 第一個(gè)字符必須是字母表中字母或下劃線'_'。
  • 標(biāo)識(shí)符的其他的部分有字母、數(shù)字和下劃線組成。
  • 標(biāo)識(shí)符對(duì)大小寫敏感。

  4. 對(duì)象

    python程序中用到的任何“東西”都成為“對(duì)象”。

  5. 邏輯行和物理行

    物理行是我們?cè)诰帉懗绦驎r(shí)看到的,邏輯行則是python看到的。

    python中分號(hào);標(biāo)識(shí)一個(gè)邏輯行的結(jié)束,但是實(shí)際中一般每個(gè)物理行只寫一個(gè)邏輯行,可以避免使用分號(hào)。

    多個(gè)物理行中可以寫一個(gè)邏輯行,如下:

s = "peter is \ writing this article"

    上面\的使用被稱為‘明確的行連接’, 又如:

print \ "peter"

  6. 縮進(jìn)

    空白在python是非常重要的,行首的空白是最重要的,又稱為縮進(jìn)。行首的空白(空格和制表符)用來決定邏輯行的縮進(jìn)層次,從而決定語句

  分組。這意味著同一層次的語句必須有相同的縮進(jìn),每一組這樣的語句稱為一個(gè)塊。

  注意:不要混合使用空格和制表符來縮進(jìn),因?yàn)樵诳缭讲煌钠脚_(tái)時(shí)無法正常工作。

二、運(yùn)算符與表達(dá)式

  1. 運(yùn)算符與其用法

運(yùn)算符 名稱 說明 例子
+ 兩個(gè)對(duì)象相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù) -5.2得到一個(gè)負(fù)數(shù)。50 - 24得到26。
* 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串 2 * 3得到6。'la' * 3得到'lalala'。
**

返回x的y次冪

3 ** 4得到81(即3 * 3 * 3 * 3)
/ x除以y 4/3得到1(整數(shù)的除法得到整數(shù)結(jié)果)。4.0/3或4/3.0得到1.3333333333333333
// 取整除 返回商的整數(shù)部分 4 // 3.0得到1.0
% 取模 返回除法的余數(shù) 8%3得到2。-25.5%2.25得到1.5
<< 左移 把一個(gè)數(shù)的比特向左移一定數(shù)目(每個(gè)數(shù)在內(nèi)存中都表示為比特或二進(jìn)制數(shù)字,即0和1) 2 << 2得到8。——2按比特表示為10
>> 右移 把一個(gè)數(shù)的比特向右移一定數(shù)目 11 >> 1得到5。——11按比特表示為1011,向右移動(dòng)1比特后得到101,即十進(jìn)制的5。
& 按位與 數(shù)的按位與 5 & 3得到1。
| 按位或 數(shù)的按位或 5 | 3得到7。
^ 按位異或 數(shù)的按位異或 5 ^ 3得到6
~ 按位翻轉(zhuǎn) x的按位翻轉(zhuǎn)是-(x+1) ~5得到6。
< 小于 返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價(jià)。注意,這些變量名的大寫。 5 < 3返回0(即False)而3 < 5返回1(即True)。比較可以被任意連接:3 < 5 < 7返回True。
> 大于 返回x是否大于y 5 > 3返回True。如果兩個(gè)操作數(shù)都是數(shù)字,它們首先被轉(zhuǎn)換為一個(gè)共同的類型。否則,它總是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比較對(duì)象是否相等 x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比較兩個(gè)對(duì)象是否不相等 x = 2; y = 3; x != y返回True。
not 布爾“非” 如果x為True,返回False。如果x為False,它返回True。 x = True; not y返回False。
and 布爾“與” 如果x為False,x and y返回False,否則它返回y的計(jì)算值。 x = False; y = True; x and y,由于x是False,返回False。在這里,Python不會(huì)計(jì)算y,因?yàn)樗肋@個(gè)表達(dá)式的值肯定是False(因?yàn)閤是False)。這個(gè)現(xiàn)象稱為短路計(jì)算。
or 布爾“或” 如果x是True,它返回True,否則它返回y的計(jì)算值。 x = True; y = False; x or y返回True。短路計(jì)算在這里也適用。

?  2. 運(yùn)算符優(yōu)先級(jí)(從低到高)

運(yùn)算符 描述
lambda Lambda表達(dá)式
or 布爾“或”
and 布爾“與”
not x 布爾“非”
in,not in 成員測(cè)試
is,is not 同一性測(cè)試
<,<=,>,>=,!=,== 比較
| 按位或
^ 按位異或
& 按位與
<<,>> 移位
+,- 加法與減法
*,/,% 乘法、除法與取余
+x,-x 正負(fù)號(hào)
~x 按位翻轉(zhuǎn)
** 指數(shù)
x.attribute 屬性參考
x[index] 下標(biāo)
x[index:index] 尋址段
f(arguments...) 函數(shù)調(diào)用
(experession,...) 綁定或元組顯示
[expression,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字符串轉(zhuǎn)換

?  3. python 控制臺(tái)輸出?使用print

print "abc"   #打印abc并換行 print "abc%s" % "d"   #打印abcd print "abc%sef%s" % ("d", "g")   #打印abcdefg

三、控制流

  1. if 語句

i = 10 n = int(raw_input("enter a number:"))if n == i:print "equal" elif n < i:print "lower" else:print "higher"

?  2. while語句

while True:pass else:pass #else語句可選,當(dāng)while為False時(shí),else語句被執(zhí)行。 pass是空語句。

  3. for 循環(huán) for..in

for i in range(0, 5):print i else:pass # 打印0到4

  注:當(dāng)for循環(huán)結(jié)束后執(zhí)行else語句;

    range(a, b)返回一個(gè)序列,從a開始到b為止,但不包括b,range默認(rèn)步長(zhǎng)為1,可以指定步長(zhǎng),range(0,10,2);

  4. break語句

    終止循環(huán)語句,如果從for或while中終止,任何對(duì)應(yīng)循環(huán)的else將執(zhí)行。

  5. continue語句

    continue語句用來調(diào)過當(dāng)前循環(huán)的剩余語句,然后繼續(xù)下一輪循環(huán)。

四、函數(shù)

  函數(shù)通過def定義。def關(guān)鍵字后跟函數(shù)的標(biāo)識(shí)符名稱,然后跟一對(duì)圓括號(hào),括號(hào)之內(nèi)可以包含一些變量名,該行以冒號(hào)結(jié)尾;接下來是一塊語句,即函數(shù)體。

def sumOf(a, b):return a + b

  1. 函數(shù)形參

    函數(shù)中的參數(shù)名稱為‘形參’,調(diào)用函數(shù)時(shí)傳遞的值為‘實(shí)參’

  2. 局部變量

    在函數(shù)內(nèi)定義的變量與函數(shù)外具有相同名稱的其他變量沒有任何關(guān)系,即變量名稱對(duì)于函數(shù)來說是局部的。這稱為變量的作用域。

    global語句, 為定義在函數(shù)外的變量賦值時(shí)使用global語句。

def func():global xprint "x is ", xx = 1x = 3 func() print x#3 #1

  3. 默認(rèn)參數(shù)

    通過使用默認(rèn)參數(shù)可以使函數(shù)的一些參數(shù)是‘可選的’。

def say(msg, times = 1):print msg * timessay("peter") say("peter", 3)

    注意:只有在形參表末尾的那些參數(shù)可以有默認(rèn)參數(shù)值,即不能在聲明函數(shù)形參的時(shí)候,先聲明有默認(rèn)值的形參而后聲明沒有默認(rèn)值的形參,只是因?yàn)橘x給形參的值是根據(jù)位置而賦值的。

  4. 關(guān)鍵參數(shù)

    如果某個(gè)函數(shù)有很多參數(shù),而現(xiàn)在只想指定其中的部分,那么可以通過命名為這些參數(shù)賦值(稱為‘關(guān)鍵參數(shù)’)。

    優(yōu)點(diǎn):不必?fù)?dān)心參數(shù)的順序,使函數(shù)變的更加簡(jiǎn)單;假設(shè)其他參數(shù)都有默認(rèn)值,可以只給我們想要的那些參數(shù)賦值。

def func(a, b=2, c=3):print "a is %s, b is %s, c is %s" % (a, b, c)func(1) #a is 1, b is 2, c is 3 func(1, 5) #a is 1, b is 5, c is 3 func(1, c = 10) #a is 1, b is 2, c is 10 func(c = 20, a = 30) #a is 30, b is 2, c is 20

  5. return 語句

    return語句用來從一個(gè)函數(shù)返回,即跳出函數(shù)。可從函數(shù)返回一個(gè)值。

    沒有返回值的return語句等價(jià)于return None。None表示沒有任何東西的特殊類型。

  6. DocStrings?(文檔字符串)

def func():'''This is self-defined functionDo nothing'''passprint func.__doc__#This is self-defined function # #Do nothing

五、模塊

  模塊就是一個(gè)包含了所有你定義的函數(shù)和變量的文件,模塊必須以.py為擴(kuò)展名。模塊可以從其他程序中‘輸入’(import)以便利用它的功能。

  在python程序中導(dǎo)入其他模塊使用'import', 所導(dǎo)入的模塊必須在sys.path所列的目錄中,因?yàn)閟ys.path第一個(gè)字符串是空串''即當(dāng)前目錄,所以程序中可導(dǎo)入當(dāng)前目錄的模塊。

?  1. 字節(jié)編譯的.pyc文件

    導(dǎo)入模塊比較費(fèi)時(shí),python做了優(yōu)化,以便導(dǎo)入模塊更快些。一種方法是創(chuàng)建字節(jié)編譯的文件,這些文件以.pyc為擴(kuò)展名。

    pyc是一種二進(jìn)制文件,是py文件經(jīng)編譯后產(chǎn)生的一種byte code,而且是跨平臺(tái)的(平臺(tái)無關(guān))字節(jié)碼,是有python虛擬機(jī)執(zhí)行的,類似于

  java或.net虛擬機(jī)的概念。pyc的內(nèi)容,是跟python的版本相關(guān)的,不同版本編譯后的pyc文件是不同的。

  2. from .. import

    如果想直接使用其他模塊的變量或其他,而不加'模塊名+.'前綴,可以使用from .. import。

    例如想直接使用sys的argv,from sys import argv 或 from sys import *

  3. 模塊的__name__

    每個(gè)模塊都有一個(gè)名稱,py文件對(duì)應(yīng)模塊名默認(rèn)為py文件名,也可在py文件中為__name__賦值;如果是__name__,說明這個(gè)模塊被用戶

  單獨(dú)運(yùn)行。

  4. dir()函數(shù)

    dir(sys)返回sys模塊的名稱列表;如果不提供參數(shù),即dir(),則返回當(dāng)前模塊中定義名稱列表。

    del -> 刪除一個(gè)變量/名稱,del之后,該變量就不能再使用。

六、數(shù)據(jù)結(jié)構(gòu)

  python有三種內(nèi)建的數(shù)據(jù)結(jié)構(gòu):列表、元組和字典。

  1. 列表

    list是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),列表是可變的數(shù)據(jù)結(jié)構(gòu)。列表的項(xiàng)目包含在方括號(hào)[]中,eg: [1, 2, 3], 空列表[]。判斷列表中是否包含某項(xiàng)可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支持索引和切片操作;索引時(shí)若超出范圍,則IndexError;使用函數(shù)len()查看長(zhǎng)度;使用del可以刪除列表中的項(xiàng),eg: del l[0] # 如果超出范圍,則IndexError

    list函數(shù)如下:

    append(value)  ---向列表尾添加項(xiàng)value

l = [1, 2, 2] l.append(3) #[1, 2, 2, 3]

    count(value)  ---返回列表中值為value的項(xiàng)的個(gè)數(shù)

l = [1, 2, 2] print l.count(2) # 2

    extend(list2)  ---向列表尾添加列表list2

l = [1, 2, 2] l1 = [10, 20] l.extend(l1) print l #[1, 2, 2, 10, 20]

    index(value, [start, [stop]])  ---返回列表中第一個(gè)出現(xiàn)的值為value的索引,如果沒有,則異常 ValueError

l = [1, 2, 2] a = 4 try:print l.index(a) except ValueError, ve:print "there is no %d in list" % a

    insert(i, value)  ---向列表i位置插入項(xiàng)vlaue,如果沒有i,則添加到列表尾部

l = [1, 2, 2]l.insert(1, 100) print l #[1, 100, 2, 2] l.insert(100, 1000) print l #[1, 100, 2, 2, 1000]

    pop([i])  ---返回i位置項(xiàng),并從列表中刪除;如果不提供參數(shù),則刪除最后一個(gè)項(xiàng);如果提供,但是i超出索引范圍,則異常IndexError

l = [0, 1, 2, 3, 4, 5]print l.pop() # 5 print l #[0, 1, 2, 3, 4] print l.pop(1) #1 print l #[0, 2, 3, 4] try:l.pop(100) except IndexError, ie:print "index out of range"

    remove(value)  ---刪除列表中第一次出現(xiàn)的value,如果列表中沒有vlaue,則異常ValueError

l = [1, 2, 3, 1, 2, 3]l.remove(2) print l #[1, 3, 1, 2, 3] try:l.remove(10) except ValueError, ve:print "there is no 10 in list"

    reverse()  ---列表反轉(zhuǎn)

l = [1, 2, 3] l.reverse() print l #[3, 2, 1]

    sort(cmp=None, key=None, reverse=False)  ---列表排序

【Python Library Reference】
cmp:cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument:?
"cmp=lambda x,y: cmp(x.lower(), y.lower())"?
key:key specifies a function of one argument that is used to extract a comparison key from each list element: "key=str.lower"
reverse:reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.In general, the key and reverse conversion processes are much faster than specifying an?
equivalent cmp function. This is because cmp is called multiple times for each list element while key and reverse touch each element only once.

l5 = [10, 5, 20, 1, 30] l5.sort() print l5 #[1, 5, 10, 20, 30] l6 = ["bcd", "abc", "cde", "bbb"] l6.sort(cmp = lambda s1, s2: cmp(s1[0],s2[1])) print l6 #['abc', 'bbb', 'bcd', 'cde'] l7 = ["bcd", "abc", "cde", "bbb", "faf"] l7.sort(key = lambda s: s[1]) print l7 #['faf', 'abc', 'bbb', 'bcd', 'cde']

總結(jié)

以上是生活随笔為你收集整理的Python 基础语法(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。