python格式化字符串有%和{}两种 字符串格式控制符.

字符串输入数据格式类型(%格式操作符号)

%%百分号标记
%c字符及其ASCII码
%s字符串
%d有符号整数(十进制)
%u无符号整数(十进制)
%o无符号整数(八进制)
%x无符号整数(十六进制)
%X无符号整数(十六进制大写字符)
%e浮点数字(科学计数法)
%E浮点数字(科学计数法,用E代替e)
%f浮点数字(用小数点符号)
%g浮点数字(根据值的大小采用%e或%f)
%G浮点数字(类似于%g)
%p指针(用十六进制打印值的内存地址)
%n存储输出字符的数量放进参数列表的下一个变量中

字符串格式控制
%[(name)][flag][width][.][precision]type

name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名

flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b

width:宽度(最短长度,包含小数点,小于width时会填充)

precision:小数点后的位数,与C相同

type:输入格式类型,请看上面

还有一种format_spec格式
{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}

用{}包裹name命名传递给format以命名=值 写法,非字典映射,其他和上面相同

fill = <any character>  #fill是表示可以填写任何字符
align = "<" | ">" | "=" | "^"  #align是对齐方式,<是左对齐, >是右对齐,^是居中对齐。
sign = "+" | "-" | " "  #sign是符号, +表示正号, -表示负号
width = integer  #width是数字宽度,表示总共输出多少位数字
precision = integer  #precision是小数保留位数
type = "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"  #type是输出数字值是的表示方式,比如b是二进制表示;比如E是指数表示;比如X是十六进制表示

例子

1 print("{:,}".format(123456))#输出1234,56

2 print("{a:w^8}".format(a="8"))#输出www8wwww,填充w

3 print("%.5f" %5)#输出5.000000

4 print("%-7s3" %("python"))#输出python 3
 
5 print("%.3e" %2016)#输出2.016e+03,也可以写大E
 
6 print("%d %s" %(123456,"myblog"))#输出123456 myblog
 
7 print("%(what)s is %(year)d" % {"what":"this year","year":2016})#输出this year is 2016
 
8 print("{0}{1}".format("hello","fun"))#输出hellofun,这与CSharp的格式化字符(占位符)相似
 
9 print("{}{}{}".format("spkk",".","cn"))#输出spkk.cn
 
10 print("{a[0]}{a[1]}{a[2]}".format(a=["spkk",".","cn"]))#输出spkk.cn
 
11 print("{dict[host]}{dict[dot]}{dict[domain]}".format(dict={"host":"www","domain":"spkk.cn","dot":"."}))#输出www.spkk.cn
 
12 print("{a}{b}".format(a="python",b="3"))#输出python3
 
13 print("{who} {doing} {0}".format("python",doing="like",who="I"))#输出I like python

格式化输出中,如果要传入一个字典,需要在占位符%后面加上(key值)再加数据类型s或d
格式化输出中,如果要直接输出一个%号,需要用%来对自己进行转义,即%%

方法一:

name = input('请输入姓名:')
age = int(input('请输入年龄:'))
course = input('请输入科目:')
progress = float(input('请输入学习进度:'))
msg = '''
-----%s的信息-----
姓名:%s
年龄:%d
科目:%s
学习进度:%.2f%%
----- end -----------
'''%(name, name, age, course, progress)

print(msg)

方法二:

dic = {'姓名': '小明', '年龄': 20, '科目': 'Python', '学习进度': 10}
msg = '''
-----%(姓名)s的信息-----
姓名:%(姓名)s
年龄:%(年龄)d
科目:%(科目)s
学习进度:%(学习进度)d%%
----- end -----------
'''%dic
print(msg)

结果:
-----小明的信息-----
姓名:小明
年龄:20
科目:Python
学习进度:10%
----- end -----------

msg = '我叫%s,今年%d,学习进度%.2f%%' % ('小明', 18, 20.555)
print(msg)
#%.2f表示浮点数类型占位,只保留2位小数

format格式化输出,必须按顺序写
msg = 'my name is {0}, and i am {1} years old'
print(msg.format('Tom','20'))
#my name is Tom, and i am 20 years old

#按关键字名称写,无需按顺序,推荐用这种方法
msg2 = 'my name is {name}, and i am {age} years old'
print(msg2.format(age=22, name='Jack'))
#my name is Jack, and i am 22 years old

format比%形式有一个优势是当有一个参数需要多次传入时,%只能多次传入,format只需要传入一次关键字名称就可以
msg = "{name}'s age is {age}, {name}'s job is {job}, {name}'s sex is {sex}"
print(msg.format(name='Tom',age=20,job='IT',sex='male'))
Tom's age is 20, Tom's job is IT, Tom's sex is male

加颜色输出

一、样式开始
\033[+ 参数1+;+ 参数2+; + 参数3+m
参数1:代表背景色
参数2:代表字体色
参数3:代表显示效果 ,当不需要背景色,也可以用于参数1位置

二、样式结束
\033[0m

注意点
1. 使用完效果后一定要加上\033[0m 用来结束效果,否则会影响后面使用
2. 如果不使用后面的参数则不要添加;
3. 经过测试\007好像只能生效一次

例子1
a=input('\033[42;31m what is your first name:\033[0m')
b=input('\033[42;31;1m what is your second name:\033[0m')
解释:
第一行参数1是42,对应绿色,参数2是31对应红色,参数3空,代表正常显示
第二行参数1是42,对应绿色,参数2是31对应红色,参数3是1,代表加深
---------------------
例子2
print('\033[0;32m what is your first name:\033[0m')
print('\033[1;32m what is your second name:\033[0m')
print('\033[2;32m what is your third name:\033[0m')
解释:
第一行参数1是0,代表正常显示,参数2是32对应绿色,参数3空
第二行参数1是1,代表加深,参数2是32对应绿色,参数3空
第三行参数1是2,代表减弱,参数2是32对应绿色,参数3空

例子3
print('\033[41;32;5m 闪光\033[0m') #闪光字符,在windows里面没有测试出效果,在pycharm里面没有效果,在linux里面测试出效果
print('\007响一声!\033[0m') #发出声音 在windows里面测试出效果,在pycharm里面没有效果,在linux里面测试出效果
print('\033[43;34;4m 下划线\033[0m')
print('\033[45;36;7m 反显\033[0m')
print('\033[47;31;8m 消隐\033[0m') #看不到了

print('\033[32;1mMike\033[0m is \033[34;1m21\033[0m years old')

name = 'Tom'
age = 20
print('\033[32;1m%s\033[0m is \033[31;1m%s\033[0m years old'%(name, age))

printf("\033[31;1m Hello World. \033[0m \n");

颜色如下:
none = "\033[0m"
black = "\033[0;30m"
dark_gray = "\033[1;30m"
blue = "\033[0;34m"
light_blue = "\033[1;34m"
green = "\033[0;32m"
light_green -= "\033[1;32m"
cyan = "\033[0;36m"
light_cyan = "\033[1;36m"
red = "\033[0;31m"
light_red = "\033[1;31m"
purple = "\033[0;35m"
light_purple = "\033[1;35m"
brown = "\033[0;33m"
yellow = "\033[1;33m"
light_gray = "\033[0;37m"
white = "\033[1;37m"

字背景颜色范围: 40--49 字颜色: 30--39
40: 黑 30: 黑
41:红 31: 红
42:绿 32: 绿
43:黄 33: 黄
44:蓝 34: 蓝
45:紫 35: 紫
46:深绿 36: 深绿
47:白色 37: 白色

输出特效格式控制:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色

光标位置等的格式控制:
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标

day02-格式化输出的更多相关文章

  1. day02格式化输出等

    1.格式化输出     format % 占位符     %s:str, %d: dight, %f: float     字符串多行用三个单引号或三个双引号     %%5,百分之五,转义字符%.想 ...

  2. day02 python流程控制 while循环 格式化输出 运算符 编码

    day02 python   一.循环: while循环     while expression:         while_suite     1.break 停止当前循环(如果多个循环嵌套,  ...

  3. day02 while循环 运算符 格式化输出 编码

     今日主要内容 while循环:判断条件是否成立. 如果成立执行循环体.然后再次判断条件,.....直到条件不成立的时候跳出循环 语法: while 条件: 循环体 else: 当条件不成立的时候执行 ...

  4. day02 循环、格式化输出、运算符、编码

    01 昨日内容回顾 python2x python3x区别: python2x:源码重复,不规范. python3x:源码规范,优美,清晰,简单. 编译型:将代码一次性全部转化成字节码. 代表语言:C ...

  5. python的print函数的格式化输出

    使用print函数的时候,可以像C一样格式化输出,同时还支持参数化输出 print('%s' % ("CooMark")) print('整数|%d|' % (123)) prin ...

  6. python学习笔记(基础二:注释、用户输入、格式化输出)

    注释 单行:# 多行:上下各用3个连续单引号或双引号 3个引号除了多行注释,还可以打印多行 举例: msg = ''' name = "Alex Li" name2 = name ...

  7. cout 格式化输出

    一直习惯于C语言的printf函数来打印,突然有一天要用cout来打印,发现有点不适应. 原来cout也是有格式化输出的. 首先要引入头文件 #include<iostream> // 在 ...

  8. Python 格式化输出

    转载 今天写程序又记不清格式化输出细节了--= =索性整理一下. 注意: 与C/C++  不同的是这里括号后面不需要加' , '号. python print格式化输出. 1. 打印字符串 print ...

  9. Python格式化输出

    今天写程序又记不清格式化输出细节了……= =索性整理一下. python print格式化输出. 1. 打印字符串 print ("His name is %s"%("A ...

  10. Javascript实现格式化输出

    前两天看面试题,其中有一道要实现js的格式化输出,具体给出的是: Javascript实现格式化输出,比如输入999999999,输出为999,999,999 我的实现方式是 function for ...

随机推荐

  1. 【推荐】asp.net 页面的生命周期

    当一个页面请求发送到WEB服务器时,不论该事件是由页面提交还是由页面重定向而激发的,页面在其被创建到释放的过程中都会运行一系列的事件.一个ASP.NET页面从被创建到释放的过程包含10个事件. (1) ...

  2. idea关闭标签快捷键修改----兼 常用实用快捷键

    还有一个快捷键: 自动补全返回值 : ctrl + alt + v alt + enter: 自动添加未定义的方法 idea 原本的关闭快捷键是: ctrl + F4,但是不好用,谁的手指伸这么长 修 ...

  3. Jmeter(二)Jmeter目录介绍

    看过许多有关Jmeter的博客,算得上的收获颇丰:不过最牛逼的博客还是“官方文档”,官方文档是ApacheJmeter自己对自己产品的说明,论起对自己产品的理解程度,那肯定是自己嘛...因此推荐大家从 ...

  4. [UE4]单机游戏改网络游戏,不完全清单

    把Actor的复制打开 中腰数据的复制打开,且只在服务器修改(比如角色属性血量) 需要同步的Actor,不在客户端Spawn 客户端的操作,先报告到服务器,服务器再广播到所有客户端 某些逻辑只在服务器 ...

  5. Postgres 主从复制搭建步骤

    系统版本: CentOS Linux release 7.5.1804 (Core) 数据库 psql (PostgreSQL) 10.5 2台机器ip : 172.17.0.3 /172.17.0. ...

  6. linux下新建(touch)\复制(cp)\剪切(mv)\删除(rm)文件

    touch :新建多个文件,中间用空格隔开 touch file1 file2 cp: mv:剪切 rm:删除文件

  7. 动态添加XtraTabControl的page页和子窗体

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...

  8. ZooKeeper系列(5):管理分布式环境中的数据

    引言 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Zab协议.通信协议等相关知 识,理解起来比较抽象所以还需要借助一些应用场景,来帮我 ...

  9. (转)程序员级别鉴定书(.NET面试问答集锦)

    原文地址:http://www.cnblogs.com/powertoolsteam/p/what-net-developer-should-to-know.html 葡萄城控件 作为一个.NET程序 ...

  10. scrapy框架之CrawlSpider操作

    提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法). 方法二:基 ...