Python入门(四)--- python3中文手册,有参函数,格式化输出

Python入门(四)

python3 官方中文文档
https://docs.python.org/zh-cn/3/

python3 模块使用手册
https://docs.python.org/zh-cn/3/library/index.html

python3 编程常见手册
https://docs.python.org/zh-cn/3/faq/programming.html#what-is-the-difference-between-arguments-and-parameters

定义函数(外网加载有点慢)
http://www.pythontutor.com/visualize.html#mode=edit

In [1]: name = " '-d-centos-root'"

In [2]:  name.split("─")
Out[2]: [" '-d-centos-root'"]

In [3]: name.split("-")
Out[3]: [" '", 'd', 'centos', "root'"]

In [4]: name.split("-",2)
Out[4]: [" '", 'd', "centos-root'"]
#!/usr/bin/bash
show(){
    echo $1
}
show $1
[root@localhost tmp]# sh t.sh world
world
[root@localhost tmp]# sh t.sh worlddd
worlddd
[root@localhost tmp]# sh t.sh worlddddddd
worlddddddd

参数 有参函数

In [2]: def foo(x,z,d=10,y=10):
   ...:     print("x",x)
   ...:     print("z",z)
   ...:     print("d",d)
   ...:     print("y",y)
   ...: 

In [3]: foo(1,2,3,4,)
x 1
z 2
d 3
y 4

In [4]: foo(1,2,3,y=4) #关键字参数)
x 1
z 2
d 3
y 4

In [5]: foo(d=1,z=2,x=3,y=4) #关键字参数)
x 3
z 2
d 1
y 4
形参和实参之间有什么区别?

形参 是指出现在函数定义中的名称,而 实参 则是在调用函数时实际传入的值。
形参定义了一个函数能接受何种类型的实参。 例如,对于以下函数定义:
def func(foo, bar=None, **kwargs):
pass
foo, bar 和 kwargs 是 func 的形参。 但是,在调用 func 时,例如:

func(42, bar=314, extra=somevar)
实际的值 42, 314 和 somevar 则是实参。

形参:是在定义函数的时候的概念

  • 位置参数

  • 默认参数

实参:是在调用函数的时候的概念

  • 位置参数
  • 关键字参数
#!/usr/bin/bash
show (){
    local user="shark"    #local  本地解析,出了函数不会生效
    echo $user            #所以下面命令不会生效
}

show

echo $user
如何将可选参数或关键字参数从一个函数传递到另一个函数?

使用函数参数列表中的 * 和 ** 说明符收集参数;这会将位置参数作为元组,
将关键字参数作为字典。然后,您可以使用 * 和 ** 调用另一个函数时传递这些参数:
def f(x, *args, **kwargs):

kwargs[‘width’] = ‘14.3c’

g(x, *args, **kwargs)

In [1]: def foo(*args, **kwargs):
   ...:     print(args)
   ...:     print(kwargs)
   ...: 

In [2]: foo(1,2,a=10,c=100)
(1, 2)
{'a': 10, 'c': 100}

In [3]: foo([1,2,3])
([1, 2, 3],)
{}

In [4]: foo(*[1,2,3])
(1, 2, 3)
{}

In [5]: foo(*[1,2,3],**{'a':1,"b":2})
(1, 2, 3)
{'a': 1, 'b': 2}
In [1]: isinstance('hello',str)
Out[1]: True

In [2]: isinstance([],str)
Out[2]: False

In [3]: isinstance([],list)
Out[3]: True

In [4]: isinstance({'a':1},dict)
Out[4]: True

In [5]: isinstance(1.1,float)
Out[5]: True

格式化输出

字符串的格式化输出目前有三种方式

  • % 方式(陈旧) python2.x及以上 都支持
  • str.format() 方式 python2.7及以上都支持
  • f-string 方式 (Python3.6 及以上推荐使用)
%百分号方式
In [13]: tpl = "i am %s"

In [14]: msg = tpl % "neko"

In [15]: msg
Out[15]: 'i am neko'


In [16]: tpl = "i am %s,%s"

In [17]: msg = tpl % ("neko",18)

In [18]: msg
Out[18]: 'i am neko,18'


In [19]: user = "neko"

In [20]: age = 18

In [21]: msg = "i am %s,%s" % (user, age)

In [22]: msg
Out[22]: 'i am neko,18'
str.format()方式
In [4]: msg = "i am {}"

In [5]: msg.format("neko")
Out[5]: 'i am neko'

In [6]: msg = "i am {},{}"

In [7]: msg.format("neko",18)
Out[7]: 'i am neko,18'

In [8]: li = ["neko",18]

In [9]: msg.format(*li)
Out[9]: 'i am neko,18'
In [10]: msg = "i am {name},{age}"

In [11]: msg.format(age=18,name="neko")
Out[11]: 'i am neko,18'

In [12]: info = {"name":"neko","age":18}

In [13]: msg.format(**info)
Out[13]: 'i am neko,18'
f-strings 方式

需要先定义好变量,变量名必须和字符串中大括号内的变量名一致

In [15]: ip="192.168.116.145"

In [16]: user="admin"

In [17]: pwd="Neko123@"

In [18]: conn_mysql = f"mysql -u{user} -p{pwd} -h{ip}"

In [19]: conn_mysql
Out[19]: 'mysql -uadmin -pNeko123@ -h192.168.116.145'
1. 开胃菜 2. 使用 Python 解释器 2.1. 调用 Python 解释器 2.1.1. 参数传递 2.1.2. 交互模式 2.2. 解释器及其环境 2.2.1. 错误处理 2.2.2. 执行 Python 脚本 2.2.3. 源程序编码 2.2.4. 交互执行文件 2.2.5. 本地化模块 3. Python 简介 3.1. 将 Python 当做计算器 3.1.1. 数字 3.1.2. 字符串 3.1.3. 关于 Unicode 3.1.4. 列表 3.2. 编程的第一步 4. 深入 Python 流程控制 4.1. if 语句 4.2. for 语句 4.3. The range() 函数 4.4. break 和 continue 语句, 以及循环中的 else 子句 4.5. pass 语句 4.6. 定义函数 4.7. 深入 Python 函数定义 4.7.1. 默认参数值 4.7.2. 关键字参数 4.7.3. 可变参数列表 4.7.4. 参数列表的分拆 4.7.5. Lambda 形式 4.7.6. 文档字符串 4.8. 插曲:编码风格 5. 数据结构 5.1. 关于列表更多的内容 5.1.1. 把链表当作堆栈使用 5.1.2. 把链表当作队列使用 5.1.3. 列表推导式 5.1.4. 嵌套的列表推导式 5.2. del 语句 5.3. 元组和序列 5.4. 集合 5.5. 字典 5.6. 循环技巧 5.7. 深入条件控制 5.8. 比较序列和其它类型 6. 模块 6.1. 深入模块 6.1.1. 作为脚本来执行模块 6.1.2. 模块的搜索路径 6.1.3. “编译的” Python 文件 6.2. 标准模块 6.3. dir() 函数 6.4. 包 6.4.1. 从 * 导入包 6.4.2. 包内引用 6.4.3. 多重目录中的包 7. 输入和输出 7.1. 格式化输出 7.1.1. 旧式的字符串格式化 7.2. 文件读写 7.2.1. 文件对象方法 7.2.2. pickle 模块 8. 错误和异常 8.1. 语法错误 8.2. 异常 8.3. 异常处理 8.4. 抛出异常 8.5. 用户自定义异常 8.6. 定义清理行为 8.7. 预定义清理行为 9. 类 9.1. 术语相关 9.2. Python 作用域和命名空间 9.2.1. 作用域和命名空间示例 9.3. 初识类 9.3.1. 类定义语法 9.3.2. 类对象 9.3.3. 实例对象 9.3.4. 方法对象 9.4. 一些说明 9.5. 继承 9.5.1. 多继承 9.6. 私有变量 9.7. 补充 9.8. 异常也是类 9.9. 迭代器 9.10. 生成器 9.11. 生成器表达式 10. Python 标准库概览 10.1. 操作系统接口 10.2. 文件通配符 10.3. 命令行参数 10.4. 错误输出重定向和程序终止 10.5. 字符串正则匹配 10.6. 数学 10.7. 互联网访问 10.8. 日期和时间 10.9. 数据压缩 10.10. 性能度量 10.11. 质量控制 10.12. “瑞士军刀” 11. 标准库浏览 – Part II 11.1. 输出格式 11.2. 模板 11.3. 使用二进制数据记录布局 11.4. 多线程 11.5. 日志 11.6. 弱引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值