24-python学习笔记之字符串格式化(format)


前言


以下都是自己的一些学习笔记,可能有写的不对的地方,还望各位大佬体谅和加以指正。


为了确保字符串按预期显示,我们可以使用 format() 方法对结果进行格式化。

字符串 format()

format() 方法允许我们格式化字符串的选定部分。
有时文本的一部分是你无法控制的,也许它们来自数据库或用户输入?
要控制此类值,请在文本中添加占位符(花括号 {}),然后通过 format() 方法运行值:

添加要显示价格的占位符:

price = 52
txt = "The price is {} dollars"
print(txt.format(price))

我们可以在花括号内添加参数以指定如何转换值:

将价格格式化为带有两位小数的数字:

txt = "The price is {:.2f} dollars"

查看字符串 format() 参考手册中的所有格式类型。

多个值

如需使用更多值,只需向 format() 方法添加更多值:

print(txt.format(price, itemno, count))

并添加更多占位符:

quantity = 3
itemno = 567
price = 52
myorder = "I want {} pieces of item number {} for {:.2f} dollars."
print(myorder.format(quantity, itemno, price))

索引号

我们可以使用索引号(花括号 {0} 内的数字)来确保将值放在正确的占位符中:

quantity = 3
itemno = 567
price = 52
myorder = "I want {0} pieces of item number {1} for {2:.2f} dollars."
print(myorder.format(quantity, itemno, price))

此外,如果要多次引用相同的值,请使用索引号:

age = 63
name = "Bill"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))

命名索引

我们还可以通过在花括号 {carname} 中输入名称来使用命名索引,但是在传递参数值 txt.format(carname = “Ford”) 时,必须使用名称:

myorder = "I have a {carname}, it is a {model}."
print(myorder.format(carname = "Porsche", model = "911"))

一、print 打印拥有颜色

-- coding:utf-8 --

print("\033[1;30m 字体颜色:白色\033[0m")
print("\033[1;31m 字体颜色:红色\033[0m")
print("\033[1;32m 字体颜色:深黄色\033[0m")
print("\033[1;33m 字体颜色:浅黄色\033[0m")
print("\033[1;34m 字体颜色:蓝色\033[0m")
print("\033[1;35m 字体颜色:淡紫色\033[0m")
print("\033[1;36m 字体颜色:青色\033[0m")
print("\033[1;37m 字体颜色:灰色\033[0m")
print("\033[1;38m 字体颜色:浅灰色\033[0m")
 
print("背景颜色:白色   \033[1;40m    \033[0m")
print("背景颜色:红色   \033[1;41m    \033[0m")
print("背景颜色:深黄色 \033[1;42m    \033[0m")
print("背景颜色:浅黄色 \033[1;43m    \033[0m")
print("背景颜色:蓝色   \033[1;44m    \033[0m")
print("背景颜色:淡紫色 \033[1;45m    \033[0m")
print("背景颜色:青色   \033[1;46m    \033[0m")
print("背景颜色:灰色   \033[1;47m    \033[0m")

在这里插入图片描述

二、使用 print 制作进度条

import time
for i in range(0,101,2):  
     time.sleep(0.1)
     char_num = i//2      #打印多少个'*'
     per_str = '
%s%% : %s
' % (i, '*' * char_num) if i == 100 else '
%s%% : %s'%(i,'*'*char_num)
     print(per_str,end='', flush=True)
# 
 可以把光标移动到行首但不换行
执行结果
100% : **************************************************
posted @ 2022-07-21 22:44  是lian啊  阅读(311)  评论(0)    收藏  举报