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语言等等
接到有帮助的话 求点赞👍 求关注❤️ 求分享👥
有问题可以评论
点关注,不迷路
如果有任何错误,如何建议,请批评指教,不胜感激 !

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