Python基础知识详解 从入门到精通(三)语法与函数

160 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

==其他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’)