真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python語句與語法

Python的語句與語法

語句角色例子
賦值創(chuàng)建引用值a='Apple',b='bike'
調(diào)用執(zhí)行函數(shù)log.write('mylog')
打印調(diào)用打印對象print(1,'hello')
if/elif/else選擇動作if a in b: print(a)
for/else序列迭代for i in list: print(i)
while/else一般循環(huán)while True: print('True')
pass空占位符for i in list: pass
break循環(huán)/迭代退出while True:if a==b: break
continue循環(huán)繼續(xù)for i in list: if i<5: continue
def函數(shù)定義def add(a,b): print(a+b)
return函數(shù)返回def add(a,b): return a+b
import模塊訪問import os
from屬性訪問from sys import stdin
class創(chuàng)建類class myclass(): def myprint(): print('myprint')
try/except/finally捕獲異常try: open('/tmp/file') except: print('no file')
raise觸發(fā)異常raise <'error type'>
assert調(diào)試檢查assert a<0,'a is too large'
with/as環(huán)境管理器with open(file) as f: f.read()
del刪除引用del_list[i] del_list[i:j] del obj.attr

Python語句的格式

語句的開頭

在python里是不使用{}或者別的符號來限制語句的開始和結(jié)尾的,一個語句的開始(除了復(fù)合語句),就是開頭,換行就是結(jié)束。在開頭,不能隨意增加空格:

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元貴州做網(wǎng)站,已為上家服務(wù),為貴州各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

>>> print (1)
1
>>>  print (1)
  File "", line 1
    print (1)
    ^
IndentationError: unexpected indent
語句的對齊

在復(fù)合語句里也是同樣的,當(dāng)你使用縮進(jìn)時,必須一致:

>>> def add(str):
...     str=str
...    print(str)
  File "", line 3
    print(str)
             ^
IndentationError: unindent does not match any outer indentation
復(fù)合語句

復(fù)合語句有單行寫法和多行寫法。從冒號后面就是復(fù)合語句的開始。
單行:復(fù)合語句只有一行時,可使用單行寫法,但是復(fù)合語句所包含的語句不是單行時,需要使用對齊的縮進(jìn)來表示復(fù)合語句

#單行語句
>>> if 1>0: print(1)
...
1
#多行語句
>>> if 1>0:
...     int=1
...     print(int)
...
1
語句的結(jié)束

一般語句里,一行的結(jié)束就是此語句的結(jié)束。
在簡單語句可以使用分號來隔開多個語句。

>>> a=3;b=3;print(a+b)
6

使用列表,元組,字典的時候按照一定的方式可以把一個語句分成多行:

>>> dict={1:'first',
... 2:'second'}
處理錯誤

當(dāng)我們所寫的語句有bug,會出現(xiàn)一些錯誤,程序會中斷運(yùn)行。
但我們在這個時候,不想讓程序中斷但還是需要提示報錯的時候可以使用try:

>>> while True:
    _input=input("please input digit:")
    try:
        print("{:d} *10 is {:d}".format(int(_input),int(_input)*10))
        break
    except:
        print("{} is not a number".format(_input))

please input digit:a
a is not a number
please input digit:1
1 *10 is 10

變量賦值

變量命名規(guī)則

變量名可以使大小寫字母,數(shù)字和下劃線,但只能以大小寫字母和下劃線開頭,不能以數(shù)字開頭。變量名是區(qū)分大小寫的,保留字符是不能使用的。
python3.0里的保留字符:
false class finally is
None continue for lambda
True def from nonlocal
and del dlobal not
as elif if or
assert else import pass
break except in raise
特殊變量名:
main等,前后都有兩個下劃線的變量名,有很多是有特殊意義的

打印

print 函數(shù)

從python3.0開始print變成了函數(shù),但返回值為None,print函數(shù)的格式如下:
print([object,...][,sep=''][,end='\'][file=sys.stdout])
在這里,object是要打印的內(nèi)容。object可以是任意對象。默認(rèn)是沒有。
sep是兩個object之間隔開的字符。默認(rèn)是一個空格。
end是結(jié)尾,默認(rèn)為換行。
file為輸出目標(biāo),默認(rèn)為標(biāo)準(zhǔn)輸出流。

>> print(1,2,3,sep=';')
1;2;3
>>> print(1,2,3,sep=':')
1:2:3
>>> print(1,2,3,end='')
1 2 3
>>> print(1,2,3,end='');print (4,5,6,end='')
1 2 34 5 6
>>> print(1,2,3,end='\n');print (4,5,6,end='')
1 2 3
4 5 6
>>> print(1,2,3,file=open(r'D:\ruanjian\1.txt','wt'))
>>> file=open(r'D:\ruanjian\1.txt')

>>> file.read()

'1 2 3\n'

判斷語句

真值測試

在if語句里的<'test'>位置里的就是判斷語句,結(jié)果為True,就能進(jìn)入子語句,判斷語句包含:

  • 比較運(yùn)算符:==,!=,>,<,>=,<=
  • 邏輯運(yùn)算符:and,or,not
  • 成員運(yùn)算符:in,not in
  • 身份運(yùn)算符:is,is not
  • 其他:對象為空,0,None等的時候是False,其他為True
    >>> 1<2
    True
    >>> True and True
    True
    >>> 1 and True
    True
    >>> True or False
    True
    >>> not True
    False
    >>> not False
    True
    >>> 1 in [1,2]
    True
    >>> 1 in (1,2)
    True
    >>> 1 in {'1':1}
    False
邏輯運(yùn)算符

當(dāng)我們使用and和or的時候,返回結(jié)果不一定是True或False:
and:當(dāng)其中一個或多個測試值為false的時候,取第一個false的值

False
>>> 1 and [] and {}
[]

and:當(dāng)全部值得測試值為True的時候,取最后一個值

>>> 1 and 2 and True
True
>>> 1 and 2 and True
True
>>> 1 and 2 and True and 3
3

or:當(dāng)其中一個或多個值為True的時候,取第一個True的值

>>> 0 or [1] or {1:'1'}
[1]
>>> 1 or 0 or 2
1

or:當(dāng)全部值為false的時候,去左后一個false值

>>> 0 or [] or {}
{}
>>> False or 0 or {}
{}
三元表達(dá)式

三元表達(dá)式的格式如下:
<'value1'>if <''test'> else <'value2'>
當(dāng)測試值為真的時候取<'value1'>,假的時候取<'value2'>

>>> 1 if True else 2
1
>>> 1 if False else 2
2
>>> 'True' if 1>2 else 'False'
'False'
>>> 'True' if 1<2 else 'False'
'True'

這個還可以如下運(yùn)用:
[<'value2'>,<'value1'>][<'test'>]

>>> [2,1][True]
1
>>> [2,1][False]
2
>>> ['False','True'][1>2]
'False'
>>> ['False','True'][1<2]
'True'

while語句

whil語句一般格式:

while <'test1'>:
    <'statement1'>
else:
    <'statement2'>

只要測試語句為真,會一直循環(huán)<'statement1'>。當(dāng)test1為假的時候會運(yùn)行else語句里的內(nèi)容。從這里,退出循環(huán)的方法有:
1.在<'statement1'>里的語句更改<'test1'>的結(jié)果為False
2.在<'statement1'>里的語句里增加break語句來跳出循環(huán)
3.在<'statement1'>里的語句里增加exit()來退出python循環(huán),不過這里會退出整個的python程序

例子

>>> a=0;b=10
>>> while a

break,continue語句

break語句用來退出最近所在的for語句或while語句。
continue語句是用來跳到最近所在的for語句或者while語句的結(jié)尾。

>>> a=0;b=10
>>> while a

pass語句

pass語句是占位的空語句,在有些復(fù)合語句里,可能沒有具體的語句,但需要正常運(yùn)行,這就需要設(shè)置空語句(pass)來代替
例子

>>> if True:
    print('true')
else: pass

true

else語句

else語句,只有在for語句和while語句正常結(jié)束后,會運(yùn)行:

>>> a=0;b=10
>>> while a

for語句

for語句在python里是一個通用的序列迭代器:可以遍歷任何有序的序列對象內(nèi)的元素??捎糜谧址?、列表、元組、其他內(nèi)置可迭代對象以及之后我們能通過類所創(chuàng)建的新對象。
一般格式:

for  in :
    
else:
    

在這里object需是可迭代的對象。每次從object里提取一個元素付給target,之后循環(huán)statements里的語句。
例子

>>> for i in a:
    print (i,end='')

12345
用法

使用for循環(huán)時,其他開發(fā)語言會使用一個變量,定義起始,結(jié)束,遞增值。但python里只能做迭代。這個時候可以使用range函數(shù)來代替。
range函數(shù)格式:
range([起始值,]結(jié)束值,[遞增值])
在這里,起始值默認(rèn)是0,遞增值默認(rèn)為1。

>>> a=range(10)
>>> for i in a:
    print(i,end='')

0123456789

當(dāng)?shù)蟮脑貫楣潭ㄩL度的元組。列表的時候:

>>> for a,b,c in [(1,2,3),(4,5,6),(7,8,9)]:
    print (a,b,c)

1 2 3
4 5 6
7 8 9

嵌套循環(huán)(不一定是固定長度):

>>> for l in [(1,2,3),(4,5,6),(7,8,9)]:
    for i in l:
        print(i,end='')
    print()

123
456
789

迭代器和解析

文件迭代器

文件訪問方式如下:

  • <'file'>.read():一次性讀取全部內(nèi)容。
  • <'file'>.readline():一次讀取一行。
  • <'file'>.readlines():生成列表,每一行是每個元素。
  • <'file'>.next():跟readline()差不多,但讀取完之后報錯。

__next__()報錯為stoplteration。在python中任何這類對象都認(rèn)為是可迭代的。在python里迭代工具(比如for)會調(diào)用__next__()來獲取數(shù)據(jù),并以stoplteration來確認(rèn)何時離開。

盡量不要使用readlines()函數(shù),因?yàn)檫@個會一次性得把所有內(nèi)容讀取到內(nèi)存里(轉(zhuǎn)換為列表),運(yùn)行速度會比較慢。

手動迭代

為了支持手動迭代代碼,python支持next()函數(shù),它會自動讀取__next__()函數(shù)。
next(X)等同于X.__next__()。

>>> file=open(r'D:\ruanjian\1.txt')
>>> file.__next__()
'hello,world'
>>> file.seek(0)
0
>>> next(file)
'hello,world'
>>> next(file)
Traceback (most recent call last):
  File "", line 1, in 
    next(file)
StopIteration

這個會從第一行開始讀取內(nèi)容,但是這個文本文件就一行,所以讀完之后再讀會報錯。
迭代協(xié)議里,當(dāng)時用for函數(shù)進(jìn)行迭代時,會傳遞給iter()內(nèi)置函數(shù),以便可迭代對象中獲取迭代器。返回的對象中有next()方法

>>> li=[1,2,3]
>>> i=iter(li)
>>> next(i)
1
>>> next(i)
2
>>> next(i)
3
>>> next(i)
Traceback (most recent call last):
  File "", line 1, in 
    next(i)
StopIteration

對于文件來說,不需要轉(zhuǎn)換成iter類型的這一步,
因?yàn)槲募ο缶褪亲约旱牡鳌?/p>

>>> file=open(r'D:\ruanjian\1.txt')
>>> file is iter(file)
True

但列表,元組,字符串就不是了。

>>> s='123';l=[1,2,3];t=(1,2,3)
>>> s is iter(s)
False
>>> l is iter(l)
False
>>> t is iter(t)
False

如果要使用next方法就需要先將字符串,列表,元組轉(zhuǎn)換成迭代器

其他內(nèi)置類型迭代器

除了文件以及像列表這樣的實(shí)際的序列外,其他類型也有其適用的迭代器。例如,遍歷字典鍵的經(jīng)典方法是明確的獲取其鍵的列表。

>>> dic={'a':1,'b':2,'c':3}
>>> for key in dic.keys():
    print(key,dic[key])

a 1
b 2
c 3

這個迭代器也可以直接對字典進(jìn)行迭代:

>>> iter1=iter(dic)
>>> iter1.__next__()
'a'
>>> next(iter1)
'b'
>>> next(iter1)
'c'
列表解析

遍歷列表時,使用for循環(huán)來修飾它:

>>> li=[1,2,3,4,5]
>>> for i in range(len(li)):
    li[i]+=10

>>> li
[11, 12, 13, 14, 15]

但這樣看來并不簡便,我們可以使用產(chǎn)生所需列表的一個單個表達(dá)式來完成上面的循環(huán)

>>> li=[1,2,3,4,5]
>>> li=[i+10 for i in li ]
>>> li
[11, 12, 13, 14, 15]

這個先是運(yùn)算[i+10 for i in li]之后,再把此值賦給li,具體的運(yùn)算是先是對li進(jìn)行迭代,每次把單個值賦給i,在進(jìn)行i+10,成為新列表的單個元素。

擴(kuò)展用法

我們可以使用如下方法,將列表的某一項(xiàng)排除

>>> li=[1,2,3,4,5]
>>> li=[i+10 for i in li if i != 3]
>>> li
[11, 12, 14, 15]

也可以在列表中進(jìn)行循環(huán)嵌套,可以看到y(tǒng)的循環(huán)嵌套在了x循環(huán)里

>>> [x+y for x in [1,2,3] for y in [10,20,30]]
[11, 21, 31, 12, 22, 32, 13, 23, 33]
其他迭代環(huán)境

map也可用在迭代

>>> list(map(str.upper,open(r'D:\ruanjian\1.txt')))
['HELLO,WORLD']

map函數(shù)是把后面的可迭代的每個值當(dāng)做前面的參數(shù)傳入。
上面的語句可以如下解釋:

>>> tmp=[]
>>> for line in open(r'D:\ruanjian\1.txt'):
    tmp.append(str.upper(line))

>>> tmp
['HELLO,WORLD']

相應(yīng)的也有sorted會對迭代對象進(jìn)行排序后生成列表

>>> sorted(open(r'D:\ruanjian\1.txt'))
['hello,world']

numerate也會對迭代對象進(jìn)行運(yùn)算后生成可迭代列表。enumerate就是在原有的順序中添加序列號。

>>> list(enumerate(open(r'D:\ruanjian\1.txt')))
[(0, 'hello,world')]

sum、any、all、max、min也可使用迭代器。

>>> max([3,5,1,6,4]),min([3,6,8,2,4])
(6, 2)
>>> any([1,[],'True']),all([1,[],'True'])
(True, False)
python3中新的可迭代對象

在python3中函數(shù)生成的是可迭代的特定對象:

>>> range(5)
range(0, 5)
>>> list(range(5))
[0, 1, 2, 3, 4]

python3的這種方式會延遲計(jì)算,在提取內(nèi)容的時候計(jì)算結(jié)果,這樣會節(jié)省內(nèi)存空間,不需要提前計(jì)算后放進(jìn)內(nèi)存,迭代對象迭代完成后不能再次讀取

>>> def printlist(list1):
    for i in list1:
        print('function print:{}'.format(i))
        yield 'Result: {}'.format(i)

>>> li=[1,2,3,4,5]
>>> s=printlist(li)
>>> s.__next__()
function print:1
'Result: 1'
>>> s.__next__()
function print:2
'Result: 2'
>>> s.__next__()
function print:3
'Result: 3'

網(wǎng)頁題目:python語句與語法
新聞來源:http://weahome.cn/article/iheeed.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部