当前位置:首页 » 编程语言 » pythonstrformat

pythonstrformat

发布时间: 2022-09-27 16:17:31

1. python里的.format()是什么意思

format函数这是一种字符串格式化的方法,用法如str.format()。

基本语法是通过 {} 和 : 来代替以前的 % 。

以下展示两种主要用法:

(1)如:语句print("{:.2f}".format(3.1415926)),它的输出为3.14,可以看出命令为保留两位小数点。

(2)如:语句"{1} {0} {1}".format("hello", "world"),它的输出为'world hello world',可以看出format为他们设置了位置。

又如:语句print '{} *'.format(j)表示输出变量j的值以及乘号:j*,可以看出用在循环里可以输出一个乘法的等式。

又如:语句print "{} 对应的位置是 {{0}}".format("runoob"),它的输出为'runoob对应的位置是0'.

(1)pythonstrformat扩展阅读:

如果在格式化数字时没有指定format,Format会提供与Str函数类似的功能,尽管它是国际化的。然而,以Format作用在正数上不会保留正负号空间,而以Str的话则会。

如果要格式化一个没有本地化的数值字符串,应该使用一个用户自定义的数值格式,以保证得到需要的外观。

注意如果Calendar属性设置是Gregorian ,并且format指定了日期格式,那么,提供的expression必须是Gregorian 。如果Visual BasicCalendar属性设置是 Hijri,则提供的的expression必须是Hijri 。

2. 为什么Python中的format有时候高亮有时候不高亮

format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
4.官方推荐用的方式,%方式将会在后面的版本被淘汰
format的一个例子
print 'hello {0}'.format('world')

会输出hello world
format的格式
replacement_field ::= “{” [field_name] [“!” conversion] [“:” format_spec] “}”
field_name ::= arg_name (“.” attribute_name | “[” element_index “]”)*
arg_name ::= [identifier | integer]
attribute_name ::= identifier
element_index ::= integer | index_string
index_string ::= <any source character except “]”> +
conversion ::= “r” | “s” | “a”
format_spec ::= <described in the next section>
format_spec 的格式
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= ”<” | “>” | “=” | “^”
sign ::= ”+” | “-” | ” “
width ::= integer
precision ::= integer
type ::= ”b” | “c” | “d” | “e” | “E” | “f” | “F” | “g” | “G” | “n” | “o” | “s” | “x” | “X” | “%”
应用:
一 填充
1.通过位置来填充字符串
print'hello {0} i am {1}'.format('Kevin','Tom') #
hello Kevin i am Tom
print'hello {} i am {}'.format('Kevin','Tom') #
hello Kevin i am Tom
print'hello {0} i am {1} . my
name is {0}'.format('Kevin','Tom')# hello Kevin i am Tom .
my name is Kevin

foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……
也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
2.通过key来填充
print 'hello {name1} i am {name2}'.format(name1='Kevin',name2='Tom') # hello Kevin i am Tom

3.通过下标填充
names=['Kevin','Tom']
print'hello {names[0]} i am
{names[1]}'.format(names=names) #
hello Kevin i am Tom
print'hello {0[0]} i am {0[1]}'.format(names) #
hello Kevin i am Tom

4.通过字典的key
names={'name':'Kevin','name2':'Tom'}
print 'hello {names[name]} i am {names[name2]}'.format(names=names) # hello Kevin i am Tom

注意访问字典的key,不用引号的
5.通过对象的属性
classNames():
name1='Kevin'
name2='Tom'

print'hello {names.name1} i
am {names.name2}'.format(names=Names) #
hello Kevin i am Tom

6.使用魔法参数
args=['lu']
kwargs = {'name1': 'Kevin', 'name2': 'Tom'}
print 'hello {name1} {} i am {name2}'.format(*args, **kwargs) # hello Kevin i am Tom

二 格式转换
b、d、o、x分别是二进制、十进制、八进制、十六进制。

数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} 3.14 带符号保留小数点后两位
-1 {:+.2f} -1 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00E+09 指数记法
25 {0:b} 11001 转换成二进制
25 {0:d} 25 转换成十进制
25 {0:o} 31 转换成八进制
25 {0:x} 19 转换成十六进制
三 对齐与填充
数字 格式 输出 描述
5 {:0>2} 05 数字补零 (填充左边, 宽度为2)
5 {:x<4} 5xxx 数字补x (填充右边, 宽度为4)
10 {:x^4} x10x 数字补x (填充右边, 宽度为4)
13 {:10} 13 右对齐 (默认, 宽度为10)
13 {:<10} 13 左对齐 (宽度为10)
13 {:^10} 13 中间对齐 (宽度为10)
四 其他
1.转义{和}符号
print'{{ hello {0} }}'.format('Kevin')

跟%中%%转义%一样,formate中用两个大括号来转义
2.format作为函数
f = 'hello {0} i am {1}'.format
print f('Kevin','Tom')

3.格式化datetime
now=datetime.now()
print'{:%Y-%m-%d %X}'.format(now)

4.{}内嵌{}
print 'hello {0:>{1}} '.format('Kevin',50)

5.叹号的用法
!后面可以加s r a 分别对应str() repr() ascii()
作用是在填充前先用对应的函数来处理参数

print"{!s}".format('2') #
2
print"{!r}".format('2') # '2'

差别就是repr带有引号,str()是面向用户的,目的是可读性,repr()是面向python解析器的,返回值表示在python内部的含义
ascii()一直报错,可能这个是3.0才有的函数

3. python语言format用法

Format为CString类的一个成员函数,它通过格式操作使任意类型的数据转换成一个字符串Format里面可以写普通的字符串,比如“mynameis”,但有些格式指令字符具有特殊意义,比如“%6s”。

Format(<表达式>[,<格式字符串>])其中,<表达式>:要格式化的数值、日期或字符串表达式。<格式字符串>:指定表达式的值的输出格式。格式字符有三类:数值格式、日期格式和字符串格式。格式字符要加引号。

方法如下:

1、首先按下“Win+R”组合键,打开运行窗口。

4. python 2.7里边的str.format是啥啊,怎么用啊,能不能具体讲一下

format就是格式化输出字符串,简单的说就是format里面的东西去替换前面的内容,在替换的时候,可以按某种规定来输出。
例如:按编号替换
'{0} {1} {2}'.format('a', 'b', 'c')
输出 'a b c'
'{1} {1} {1}'.format('a', 'b', 'c')
'b b b'
替换数值,输出浮点数:
'{: f}; {: f}'.format(3.14, -3.14)
' 3.140000; -3.140000'
按10进制,16进制,8进制,2进制输出42这个数
"int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)
'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'

5. 利用Python编写程序,输入一个三位数,分离出各位数上的数字并输出

前面跟大家分享过占位符%,最近发现了个更好用的格式化输出函数format,故做了个总结,下面将是对format函数的用法全解。

首先,format是一个字符串中的函数 表达式为 str.format(),采用了 {} 来代替占位符 %

format(value, format_spec='', /)

这个为调用格式 value 表示格式化输入的值(参数),可以接受不限个参数

format函数的位置参数用法 “{0}”.format(value)

"The dog is {} years old,name {}".format(1,"DaiMo")#大括号里没有设置位置参数

结果为:'The dog is 1 years old,name DaiMo'

这是默认位置参数状态下的输出结果,第一个{}对应format函数的第一个参数,

第二个{}对应着第二个参数,以此类推,一一对应。

"The dog is {0} years old,name {1}".format(1,"DaiMo")

结果为:'The dog is 1 years old,name DaiMo'

"The dog is {1} years old,name {0}".format(1,"DaiMo")

结果为:'The dog is DaiMo years old,name 1'

通过位置的改变来让替换的值根据位置改变

format函数的字符填充用法 “{:}”.format()

说到这一点,可能稍微有点复杂,为了方便理解,在引入format函数的调用格式

'''

{ index : [ [fill] align] [sign] [+] [width] [.precision] [type] ] }

index 为位置参数,从0,1,……,开始

fill:指定空白处填充的字符,当填充字符为逗号(,)且作用于整数或浮点数时,

该整数(或浮点数)会以逗号分隔的形式输出(千分位输出),例如(1000000会输出 1,000,000)

align:指定数据的对齐方式(、^ 分别为左对齐、右对齐、居中,= 看下图)

sign:指定有无符号数(+、-、、空格)

width:指定输出数据时所占的宽度。

precision:指定保留的小数位数。

type:指定输出数据的具体类型

'''

哈?还看不懂吗?那我以例子为基础讲细一点

print("The dog is {0:0>2} years old,name {1}".format(1,"DaiMo"))

The dog is 01 years old,name DaiMo

大括号中第一个0表示位置参数,第二个0是在设定的字符长度下,空白处以0来填充。> 表示右对齐,2 表示字符长度为2.

6. python问题,用format函数来格式化字符串,如何设置宽度为变量

在{}里继续嵌套一次{},并在format的参数里增加一项即可。

b=10
print("{0:*^{width}}".format("字符串", width=b))

b=30
print("{0:*^{width}}".format("字符串", width=b))

最后得到的输出如下
***字符串****
*************字符串**************

7. 为什么Python中format括号里要加引号

一种格式化字符串的函数。
大括号里面是可以带数字的,他表示的是取format( )括号中的第几个元素,索引从0开始,所以需要加引号。
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。

8. Python中,str.format(**locats()) 什么意思

你这里str.format(**locats())中locats应该是locals吧?
locals返回当前作用域 的所有局部变量的变量名:变量值组成的字典。
例如:当前作用域有两个局部变量x=1,y='something'则locals()返回字典
{'x':1,'y':'something'}
**locals()在format函数调用里的意思是将locals()返回的字典解包传递给format函数。如果locals返回的如上面的例子里说的 一样的话,解包就是将{'x':1,'y':'something'}变成x=1,y='something'
于是str.format(**locats())等价于str.format(x=1,y='something')
format是字符串对象的方法,format的使用可参考python手册。
还有什么不懂可以再追问。谢谢。

9. format在python中的用法

fotmat作为Python的的格式字符串函数,主要通过字符串中的花括号{},来识别替换字段,从而完成字符串的格式化。format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。单个参数可以多次输出,参数顺序可以不相同。

python中的format函数用法

基本语法是通过{}和:来代替以前的%

1、例如输出保留两位的数字:print("{:.2f}".format(3.1456879)),且会四舍五入。

2、大括号里可以填索引,以此来保证后续format中参数的顺序位置,例如:

print("{2}{0}{1}".format("are","you","How"))

输出为Howareyou,注意索引应从0开始。

而且需要注意的是如果未填索引,那么会默认按format中参数顺序位置填充,此时大括号占位数要与format参数相等。如果填充索引,索引数需要不大于format索引数。

3、如果是双层大括号结构,则认为第二层大括号为普通字符串,不会进行格式化。例如:

print("{}对应的位置是{{普通字符串}}".format("字符串"))

输出为:字符串对应的位置是{普通字符串},注意加粗部分,第二层大括号会作为普通的字符串,不会进行格式化。

热点内容
传奇装备强化脚本 发布:2024-04-28 18:34:29 浏览:328
QQ如何撤销以储存的密码 发布:2024-04-28 18:32:13 浏览:321
ttsandroid中文 发布:2024-04-28 18:30:38 浏览:766
修改密码后为什么连接不了 发布:2024-04-28 18:16:48 浏览:743
cfm安卓转苹果在哪个买 发布:2024-04-28 18:07:15 浏览:161
编译器错误都是什么意思 发布:2024-04-28 17:31:30 浏览:74
服务器不能复制粘贴到本机是怎么回事 发布:2024-04-28 17:24:50 浏览:15
房产中介管理系统源码 发布:2024-04-28 17:23:53 浏览:77
文件传输java 发布:2024-04-28 17:19:24 浏览:195
存储过程中的is 发布:2024-04-28 17:13:45 浏览:406