python基础3
3. 循环
就不再整理常规的循环结构了,这里整理一些有关循环的琐碎的知识点
3.1 range
- 生成一个数字序列
- 可以选定范围,遵循左闭右开的原则
for i in range(1,5):
print(i)
print('*******分割线*******')
for i in range(5):
print(i)
'''
输出:
1
2
3
4
*******分割线*******
0
1
2
3
4
'''
3.2 for-else语句
- 当for循环结束的时候,会执行else语句
- 也可以不写else,不是很常用,大多数时候写与不写没什么区别
3.3 break/continue/pass
- break:无条件结束整个循环
- continue:无条件结束本次循环,开始下一次循环
- pass:表示略过,一般没什么作用,用于占位,防止无代码的报错
for i in range(1,5):
if i==3:
print(i)
else:
print(i)
print('********分割线********')
for i in range(1,5):
if i==3:
break
print(i)
else:
print(i)
print('********分割线********')
for i in range(1,5):
if i==3:
continue
print(i)
else:
print(i)
print('********分割线********')
for i in range(1,5):
if i==3:
pass
print(i)
else:
print(i)
'''
输出:
1
2
3
4
********分割线********
1
2
********分割线********
1
2
4
********分割线********
1
2
3
4
'''
4. 函数
4.1 收集参数
- 有的函数需要很多参数,当参数数量未知时就需要用到收集参数,主要分为以下两种:
- 带 * 的参数
- 多个参数会放置于元组之中进行使用,通常写作*args
- 使用这类参数时可以利用元组的性质用索引调用不同参数
def func(name,*args): print(type(args)) print(args[0]) func('zz',1,2,3,4) ''' 输出: <class 'tuple'> 1 '''
- 带 ** 的参数
- 多个关键字参数会放置于字典之中进行使用,通常写作**kwargs,kw即keyword
- 在输入这类参数时需要有关键字,调用时利用字典的性质通过其关键字进行调用
def func(name,**kwargs): print(type(kwargs)) print(kwargs['num1']) func('zz',num1=1,num2=2) ''' 输出: <class 'dict'> 1 '''
- 带 * 的参数
- 通常大多数情况下我们需要同时使用多种类型的参数,包括普通参数,关键字参数,收集参数,所以需要规范化他们的顺序,否则使用时会出错
#错误示例
def func(*args,name):
pass
func(1,2,3,4,'zz')
'''
输出:
Traceback (most recent call last):
File "script.py", line 4, in <module>
func(1,2,3,4,'zz')
TypeError: func() missing 1 required keyword-only argument: 'name'
Exited with error status 1
'''
- 如果收集参数在前,后面的参数必须通过关键字输入
def func(*args,name):
pass
func(1,2,3,4,name='zz')
- 另外如果是收集关键字参数,那么只能放在最后,后面若有其他参数会报错
def func(**kwargs,name):
pass
func(num1=1,num2=2,name='zz')
'''
输出:
File "script.py", line 1
def func(**kwargs,name):
^
SyntaxError: invalid syntax
Exited with error status 1
'''
- 所以为了避免以上的问题,通常我们将普通参数和关键字参数放在前面,而收集参数放在最后
4.2 函数文档
个人认为这是写函数最最最重要的一块,无论你写出来的函数多么的巧妙和实用,如果别人看不懂或者过段时间你自己忘记某个参数的用途也都是白搭,所以在每个函数里写帮助文档尤为重要
- 文档的写法:
- 在函数内部第一行使用单引号字符串或者三引号字符串,单引号只能书写一行,而三引号可以写多行
def func(**kwargs): '这是帮助文档' pass def func2(**kwargs): ''' 函数用于。。。 参数一: 参数二: ''' pass help(func) help(func2) ''' 输出: Help on function func in module __main__: func(**kwargs) 这是帮助文档 Help on function func2 in module __main__: func2(**kwargs) 函数用于。。。 参数一: 参数二: '''
- 文档的查看
- 使用help或者__doc__查看,一般我们常用的是help
#help见上面的示例 def func(**kwargs): '这是帮助文档' pass def func2(**kwargs): ''' 函数用于。。。 参数一: 参数二: ''' pass print(func.__doc__) print(func2.__doc__) ''' 输出: 这是帮助文档 函数用于。。。 参数一: 参数二:
- 比较发现,用help更加的清晰方便
要开学了,收拾东西去了,有空我会不定期更新