【循序渐进学Python3新语法】
Python因为版本的迭代,所以出现了许多的新的语法,学会这些新语法,在以后的工作中,会大大增加工作的效率,今天我们就来看看这三个新式语法.
字符串的输出
- f-string(format)提供了一种简洁易懂的方式,可以在字符串中包含Python表达式f-string
- 可以在字符串中包含Python表达式f-string以字符“f”或者"F"为前缀
- 格式化字符串使用一对单引号、双引号、三单引,三双引,格式化字符串
- 主要使用的是字符串的格式化方法进行输出,一般情况下字符串中花括号内部设置输出的格式
实例
age = 10
name = "张三"
print("我是%s,今年%d" % (name, age))
print("我是" + name + ",今年" + str(age) + "岁")
# 在格式化字符串中可以将{}理解为是将字符串与代码进行分割的符号
print(f"我是{name},今年{age}岁")
print(f"我是{'张三'},今年{20}岁")
print(f"我是{name},今年{18 if age<18 else age}岁")
def fun(age):
if age < 18:
return 18
else:
return age
print(f"我是{name},今年{fun(age)}岁")
格式化输出
数字 | 格式 | 输出 | 作用 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后2位小数 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后2位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后2位 |
3.1415926 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补0(2d代表数的长度补充左边) |
5 | {:#<2d} | 5# | 数字补#(2d代表数的长度补充右边) |
100000000 | {:,} | 100,000,000 | 以逗号分隔数字的格式,人民币表示 |
0.25 | {:.2%} | 25.00% | 百分比格式输出 |
100000000 | {:.2e} | 1.00e+08 | 指数计数法 |
13 | {:10d} | 13 | 右对齐(默认宽度为10) |
13 | {:<10d} | 13 | 左对齐(默认宽度为10) |
13 | {:^10d} | 13 | 居中对齐(默认宽度为10) |
11 | {:b} | 1011 | 二进制输出 |
11 | {:d} | 11 | 十进制输出 |
11 | {: o} | 13 | 八进制输出 |
11 | {:x} | b | 十六进制输出 |
11 | {:#x} | 0xb | 十六进制格式输出 |
11 | {:#X} | 0XB | 大写十六进制格式输出 |
实例:
a = 3.1415926
print("圆周率是%.2f" % a)
print('{:.2f}'.format(a))
print('{:+.2f}'.format(a))
print("{:.0f}".format(a))
print("{:#>3d}".format(5))
print("{:,}".format(100000000))
print("{:%}".format(0.22))
print("{:.2e}".format(100000000))
print("{:10d}".format(13))
print("{:<10d}".format(13))
print("{:^10d}".format(13))
有序字典
- 原始的字典其内部元素的顺序不稳定,因此提出了一种新字典类型叫有序字典
实例:
from collections import OrderedDict
my_dict = OrderedDict()
my_dict["yi"] = 1
my_dict["er"] = 2
my_dict["san"] = 3
my_dict["si"] = 4
print(my_dict)
- 在Python3.6版本中dict字典已经经过优化处理,变为有序字典,并且字典所占用的内存减少了20%-25%