最新消息:欢迎光临 魔力 • Python!大家可以点开导航菜单中的【学习目录】,这个目录类似图书目录,更加方便学习!

Python3萌新入门笔记(25)

Python教程 小楼一夜听春语 5237浏览 0评论

这一篇教程继续补充一些内容。

第五部分、字符串格式化

之前我们接触过简单的字符串格式化方法,通过转换说明符%标记转换内容的位置,然后通过操作符%,将后方的内容转换到标记的位置。

实际上,转换说明符的组成包括:%[转换标志:+,-,”,0][最小字段宽度][.精度值]转换类型

%:转换说明符的开始的标记

转换标志(可选):-表示左对齐;+表示转换后的内容前方加上正负号;’ ‘(空格)表示正数前方保留一个空格;0表示如果转换位置位数不够时,用0填充。

最小字段宽度(可选):转换后字段的最小宽度,如果不足自动用空格补齐;如果最小字段宽度值为“*”,则从元组中读取。

.精度值:如果转换内容为数字,精度值表示保留的小数位数;如果转换内容为字符串,精度值表示最大宽度。

转换类型:

  •  i/d:带符号的十进制整数
  • o:不带符号的八进制
  • u:不带符号的十进制
  • x/X:不带符号的十六进制(x为小写,X为大写)
  • e/E:科学计数法的浮点数(e为小写,E为大写)
  • f/F:十进制浮点数
  • g/G:指数大于等于-4但小于精度值时,等同于f/F;否则,等同于e/E。
  • C:单字符(整数或单个字符)
  • r:字符串(非字符串时自动使用repr函数转换)
  • s:字符串(非字符串时自动使用str函数转换)
  • %:取消%转义(输出一个“%”字符)

接下来,我们看一些示例代码,加深理解。

示例代码:(最小字段宽度)

print('%2s' % 123456,'/',sep='') # 最小字段宽度(超过长度)
print('%8s' % 123456,'/',sep='') # 最小字段宽度(长度不足)
print('%*s' % (8,123456),'/',sep='') # 最小字段宽度(*)

# 显示输出结果为:123456/
# 显示输出结果为:  123456/
# 显示输出结果为:  123456/

示例代码:(.精度值)

print('%.2f' % 3.14159)  # 精度值(浮点数)
print('%.2s' % '3.14159')  # 精度值(字符串)

# 显示输出结果为:3.14
# 显示输出结果为:3.

示例代码:(转换标志)

print('%8.2f' % 3.14159,'/',sep='') # 未左对齐
print('%-8.2f' % 3.14159,'/',sep='') # 左对齐

# 显示输出结果为:      3.14/
# 显示输出结果为:3.14      /

print('%+d是一个正数' % 666)  # 加号
print('%+d是一个负数' % -666)  # 加号
# 显示输出结果为:+666是一个正数
# 显示输出结果为:-666是一个负数


print('% d是一个正数' % 666)  # 空格
print('% d是一个负数' % -666)  # 空格

# 显示输出结果为: 666是一个正数
# 显示输出结果为:-666是一个正数

print('%08d是一个8位数' % 666)  # 填充0
# 显示输出结果为:00000666是一个8位数

第六部分、执行字符串语句

如果想在Python中动态的执行一些代码,我们可以使用内置函数exec()和eval()。

示例代码:

exec('print(\'语句被执行了!\')')

上方代码会执行print语句。

但是,这样执行语句会有不安全因素。

示例代码:(异常示例)

exec('len=1')
len('abc')

上方代码,因为执行了语句len=1,导致内置函数len()失效,从而程序抛出异常。

TypeError: ‘int’ object is not callable

类型错误:整数对象不能调用

显然,这样执行字符串中的语句非常不安全。

我们可以把执行字符串代码的语句放在字典中,让字符串代码具有独立的作用域(命名空间)。

示例代码:

scope = {}
exec('len=1', scope)
print(scope.keys())  # 显示输出结果为:dict_keys(['__builtins__', 'len'])
print(scope['len'])  # 显示输出结果为:1
print(len('abc'))  # 显示输出结果为:3

当然,也可以执行其他语句,比如一个计算字符串长度的语句。

示例代码:

scope = {}
exec('code=len(\'小楼喜欢苍老师!\')', scope)
print(scope.keys())  # 显示输出结果为:dict_keys(['__builtins__', 'code'])
print(scope['code'])  # 显示输出结果为:8

exec()函数可以执行语句,而eval()函数可以计算表达式。

示例代码:

scope = {'x':3,'y':6}
print(eval('x*y', scope))# 显示输出结果为:18

第七部分、函数说明

如果想为函数添加说明文档,除了使用“#”进行注释,还可以在def语句后面直接写入说明字符串。

def get_area(width, height):
    '这是一个计算面积的函数。'
    return width * height

当一个函数添加了文档,我们可以通过调用函数的__doc__属性查看文档。

print(get_area.__doc__)  # 显示输出结果为:这是一个计算面积的函数。

而且,我们还可以使用内置函数help()进行查看。

help(get_area)

上方这句代码会显示输出以下结果:

Help on function get_area in module __main__:

get_area(width, height)
这是一个计算面积的函数。

本节知识点:

1、字符串格式化

2、执行字符串语句

3、函数说明

本节英文单词与中文释义:

1、scope:作用域

2、area:面积

3、main:主要

转载请注明:魔力Python » Python3萌新入门笔记(25)

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网站 (可选)