python3中的常见知识点1

简记一些python小知识

  • 字符串输出
  • docstring(文档字符串)
  • Lambda 函数(匿名函数)
  • python函数之参数调用
  • 参考链接

字符串输出

1、r’原始字符串’,当需要输出字符串中的 \ ,而不是将其视为特殊字符时,r’原始字符串’很有必要。

print('D:\python3\newExample')   # \n是换行符

print(r'D:\python3\newExample')

2、多行字符串输出,在三引号”’ …. ”’或”“” … “”” 的第一个引号后面加 \ ,防止输出第一行为空的情况(行结尾自动包含在字符串中)。

# 没有\,输出第一行为空行
print("""\
没有比脚更长的路
没有比人更高的山
《山高路远》 汪国真
""")

3、带引号的相邻字符串会自动连起来,切分长字符串时非常有必要。

text = ('孤独若不是由于内向,便往往是由于卓绝。'
'太美丽的人感情容易孤独,太优秀的人心灵容易孤独。'
'其中的道理显而易见,因为他们都难以找到合适的伙伴。'
'太阳是孤独的,月亮是孤独的,星星却难以数计。')
print(text)

docstring(文档字符串)

PEP-0257中有详细的介绍

简单理解,python中的文档字符串(docstring)即为每一个包,模块,类,函数和方法中的第一个语句,有单行文档和多行文档两种,此处使用三引号。

文档字符串内容和格式的惯例
第一行永远应该是对象用途的简短、精确的总述。这一行应该以大写字母开头,并以句号结尾。

如果在文档字符串中有更多的行,第二行应该是空白,在视觉上把摘要与剩余的描述分离开来。

def fun(a, b):
""" This function is sum(a, b). """

各类docstring风格


Lambda 函数(匿名函数)

Lambda 函数又称匿名函数,即不需要定义函数名字。
lambda只是一个表达式。
lambda函数的语法只包含一个语句

lambda [arg1 [,arg2,.....argn]]:expression

例子:

sum = lambda a, b: a + b
print(sum(1, 2))

python函数之参数调用

函数调用时的参数类型如下
1、必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

2、关键字参数
函数调用使用关键字参数来确定传入的参数值,使用关键字参数允许函数调用时参数的顺序与声明时不一致。

3、默认参数
调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

def sum(a, b = 3):
"""
:param a: int
:param b: int
:return: sum(a, b)
"""
return a + b
print(sum(3)) # 6

4、不定长参数
函数可以被可变个数的参数调用,有*args 、**kwargs两种标识符。
(1)*args标识符
以列表和元组的形式传递参数,不能用字典。

def test_args(a, *args):
print("必备参数: ", a)
# 输出不定长参数
for value in args:
print("多余的参数:", value)
test_args(3, 2, 'test *args')



(2)**kwargs标识符
以字典的值作为关键字参数,*args 必须出现在 **kwargs 之前。

def test_args2(a, **kwargs):
print("必备参数: ", a)
# 输出不定长参数
for key in kwargs:
print(key + ":" + kwargs[key])
test_args2(a = 3, b = '2', string = 'test *args')


参考链接

https://yiyibooks.cn/xx/python_352/index.html
http://www.runoob.com/python/python-tutorial.html
https://www.cnblogs.com/KingCong/p/6412972.html

最新文章

  1. git 中关于LF 和 CRLF 的问题
  2. redis运用连接池报错解决
  3. [笔记]--在Windows下配置Git
  4. 基于ArcGIS的栅格图像平滑处理(转)
  5. H - Parity game-poj1733(需要离散化)
  6. api接口、RPC、WebService REST
  7. theano安装
  8. 冒泡排序(java)
  9. 通过 ['1', '2', '3'].map(parseInt) 学习 map 和 parseInt 函数
  10. Linux 高性能服务器编程——高性能服务器程序框架
  11. 进阶-Redis 知识梳理
  12. 2018-2019-2 网络对抗技术 20165304 Exp5 MSF基础应用
  13. Java线程池ThreadPoolExecutor使用和分析(二) - execute()原理
  14. 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
  15. 怎样通过 DLNA 将电脑上的媒体投射到智能电视上
  16. vue深入响应式原理
  17. 高手速成android开源项目【tool篇】
  18. Bootstrap按钮式下拉菜单
  19. 牛客多校第四场 F Beautiful Garden
  20. RecyclerView的通用适配器

热门文章

  1. kubeadm使用外部etcd部署kubernetes v1.17.3 高可用集群
  2. Elasticsearch:跨集群搜索 Cross-cluster search (CCS)
  3. JS 模块化- 05 ES Module & 4 大规范总结
  4. .net程序员的android studio 初体验 (环境设置2022年10月)
  5. PHP全栈开发(八):CSS Ⅷ border margin padding
  6. 洛谷P1714 切蛋糕(单调队列)
  7. Spring Boot 源码学习之转载
  8. python不确定性计算之粗糙集属性约简
  9. C++11绑定器bind及function机制
  10. 云原生之旅 - 9)云原生时代网关的后起之秀Envoy Proxy 和基于Envoy 的 Emissary Ingress