Python基礎知識詳解 從入門到精通(三)語法與函數

Python基礎知識詳解 從入門到精通(三)

其他python學習筆記集合

Python基礎知識詳解 從入門到精通 全集索引篇

語法

一定縮進對齊 python以縮進爲標誌,,而不像c語言的{}
註釋
單行註釋 #
多行註釋 ‘’‘ ’‘’(3單引號)或 “”“ ”“”(3雙引號) ’ ”不可混用

字符串1+字符串2 爲拼接過程

輸入輸出

input([輸入的提示]) 只返回字符串,其他需要類型轉化
[輸入的提示]是提示用戶的輸入提示,可選

輸出 print()內加 ‘ ’ 或“ ” 爲直接打印 不加相當於理解後打印
如a = 1
print(‘a’) 輸出a
print(a) 輸出1
語法
print(value,…,sep=‘ ‘,end=’\n’)

  value  用戶要輸出的信息,省略號說明可以有多個
  sep    信息之間的間隔符,默認空格
  end    輸出結束後加的符號,默認換行

如 print(‘dk’,‘shsi’,sep=‘,‘,end=’;‘)
結果爲 dk,shsi;

也可以用格式字符輸出
如 print(‘我的名字是%s,今年已經%d歲了’ %(‘西門吹雪’,33))
格式字符與對應變量必須對應
Print (“jjjj“+”sklsdj“)將兩個字符串連接輸出
Print (“jjjjj”*4) 將字符串輸出4次 *爲重複操作符

條件語句

必須縮進對齊
最好不混用tap 與空格

If 條件 :    #  :不可少
   縮進     #可以有多行 ,縮進要對齊,下同
else :
   縮進




If 條件:
	縮進
elif 條件 :    # 可以有任意個elif   根據需求而定
	縮進
……
else :
	縮進

循環語句

while 條件 :
     縮進(循環體)


for 目標 in 表達式:
	循環體   
如  aaa=‘abc‘
for i in aaa:
	print(i)
結果爲   a
         b
         c



while 條件 :
     縮進       
else :
	語句          #Else中的語句只有在正常退出時才執行,break等  退出不執行



for 目標 in 表達式:
	循環體   
else :
	語句             #Else中的語句只有在正常退出時才執行,break等  退出不執行


函數

創建函數

創建函數

def 函數名(參數1,參數2,……):          #參數不用聲明類型
	縮進(函數內容)
	’    這是函數文檔 下列有解釋 ‘ 
'''
有無返回無需說明,返回用return (返回值),也可以使用return 無返回值來結束函數
(若無返回值函數返回None )
‘’‘

匿名函數


 lambda 參數1,…… :返回值     如 lambda x :2*x-1
使用時   g= lambda x,y :2*x-1    再g(x,y)即可,使用後函數就不存在了,不佔資源
好處:對於只使用一兩次的,精簡,不要另外定義,讀時候不用去找定義

調用函數

函數名() 即可有參數帶上參數

函數文檔
使用: 在函數定義內 ‘ 內容 ’即可 上圖有示例
不會參與函數的運行,但是和註釋也有區別
但是可以被調出來 如 函數名.doc 可以查看函數文檔
或 help(函數名)也可以調用函數文檔

關鍵字參數

#如定義函數  
def han(name,woid):
    Print( name + woid ) 
#使用時可以  
han(woid=‘hhh’,name=‘急急急’)    #可以忽略參數順序

默認參數

#如定義函數  
def han(name=‘ddd’,woid=‘ddddddd’):
    Print( name + woid )
#使用時可以不輸入參數而不報錯,沒有參數時使用默認參數,
#有輸入參數則優先輸入的,也可個別參數沒有輸入而使用默認參數

收集參數(可變參數)

如定義函數  def han(*name):           (加個 * )
           		Print( ‘參數的長度是:‘,len(name))
                Print(‘第二個參數是:’,name [1])
使用:      han(1,‘hhhh’,3.143468)
結果        參數的長度是 7
            第二個參數是 hhhh
實際上1,‘hhhh’,3.143468  是打包爲元組傳入函數
如果後面還需要參數,應該用關鍵字參數,否則被認爲是收集參數的一部分
返回值
可以通過返回列表或元組,返回多個值

關於變量

全局變量在自己定義的函數中可以調用,但是修改的話會自動在函數內定義一個同名局部變量,兩個互不影響,若確實需要在函數內修改全局變量則需要使用global在函數內定義

如
P=1
定義函數  def han(name,woid):
                global p     之後就可以修改全局變量
           		Print( name + woid )

局部變量只能局部使用

迭代器

iter() 得到迭代器
next() 返回下一個值, 如果沒有值返回就會異常

示例:

str2 = ‘asddfkj’
it = iter(str2)  #這時it就是一個迭代器
next(it)
結果爲  ‘a’
next(it)     第二次調用
結果爲  ‘s’
……………… 

iter() 用法二
iter(可調用類型 ,標記 ) 當可調用類型(如函數)的返回值等於標記時候停止遍歷

使用groupby()
import itertools
itertools.groupby(需要遍歷的對象,key = 函數)
key函數作用於遍歷對象的每一個元素,將具有相同結果的元素分配到新循環器
例如

import itertools
i = [1,2,3,4,5,6]
def aa(t):
	if t >4 :
		Return hhhh
	else :
		Return jjjjj
for i,j in itertools.groupby(i,key = aa)print(i)
	printlist(j))
結果爲
hhhh
[5,6]
jjjjj
[1,2,3,4]

生成器

函數中有yield就是生成器,,,,yield可以用於中斷
當生成器my被調用時候到第一個yield就停下並返回所帶的值
下一次調用時候從第二個yield開始然後停下並返回所帶的值
以此類推

def my():
	print(‘生成器執行’)
	yield 1
	yield 2
結果
m= my()
next(m)
輸出1
next(m)
輸出2for I in my():
	print(m)
結果爲1
     2

內嵌函數

允許內嵌定義函數
如 def han1():
 		Print(‘han1調用’)
  		def han2()            #內嵌定義, 注意 han2只在han1內有效
  			print(“han2調用“)
        han2()              #使用han2

遞歸思想

1	階乘
def jiecheng(n)
	if n= 1return 1
	elsereturn jiecheng(n-1)
number = intinput (‘親輸入一個整數:’))
jieguo = jiecheng (number)
print (jieguo)
2.漢諾塔
Def hannuota(n,x,y,z)
	If n ==1:
		Print (x,’’,z)
	Else :
		Hannuota(n-1,x,z,y)   #將前n- 1個盤子從x移動到y
		Print(x,’’z)     #將底下的最後一個盤子移動到z上
		Hannuota(n-1,y,x,z)   #將y上的n-1個盤子移動到z上
n = intinput(‘親輸入漢諾塔的層數’))
hannuota(n,’x’,’y’,’z’)

最後

持續更新arduino 樹莓派 python linux c語言等等
接到有幫助的話 求點贊👍 求關注❤️ 求分享👥
有問題可以評論
點關注,不迷路
如果有任何錯誤,如何建議,請批評指教,不勝感激 !

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