格式化字符串

三种语法

%,format,f-string

print("格式 %s" %'hello')

##
%[-][+][0][m][.n]格式化字符 参数

m:占位符

-:左对齐

+:右对齐,其中-+都需要配合m使用

.n:在字符串中代表截取字符串的前n位

0:在数字的输出中,可以把左边都补0

格式化字符
%s占位符
%d10进制
%o8进制
%x16进制
%f浮点数(默认6位小数)
%b2进制,format中独有

Format

template = '格式化的内容是{}'
print(template.format('hello'))

 其中逗号代表千分位符,把12345表示为12,345

#index的使用,format的数量可以不等于前方{}的数量
print("{0}{1}{0}".format(1,2))
>>> 1,2,1

使用举例,占位,截取,右对其,居中对其,任意字符填补

# 的使用举例,主要的作用在不同进制之前加上标识符

print("|{0:d}|{0:x}|{0:o}|{0:b}|".format(13)}
print("|{0:d}|{0:#x}|{0:#o}|{0:#b}|".format(13)}

>>>|13|d|15|1101|
>>>|13|0xd|0o15|0b1101|

sign的使用举例,主要用于在输出中更明显的区分正负数

print("|{0:d}|{0:d}|".format(13,-13)}
print("|{0:+d}|{0:+d}|".format(13,-13)}
print("|{0:-d}|{0:-d}|".format(13,-13)}
print("|{0: d}|{0: d}|".format(13,-13)}

>>>|13|-13|
>>>|+13|-13|
>>>|13|-13|
>>>| 13|-13|

 有关format的参数传递

#按*args传入固定参数
print("{} {} {}".format(1,2,3))
#按**kwargs传入可变参数
print("{name} {age} {sex}".format(name='alex',age=18,sex='man'))

>>>123
>>>alex 18 man

当然你可以按元组或字典方式传入

par = (1,2,3)
print("{0[0]} {0[1]} {0[2]}".format(par))

par = {'x':1,'y':2,'z':3}
print("{0[x]} {0[y]} {0[z]}".format(par))
>>>123
>>>123

显示千分位

print('{:,.2f}'.format(123456,5678))
>>>123,456.57

F-string

是format的变形用法

python 3.6版本的新功能

也支持类方法的调用,是fstring的最强大功能

name = 'tom'
age = 18
salary = 1223.21
print(f'{name:.2s},{age:010d},{salary:,.2f}')
print(f'{name:capitalize()},{age:010d},{salary:,.2f}')
>>>to,0000000018, 1,223.21
>>>Tom,0000000018, 1,223.21

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
seedlab 格式化字符串是一个开放式实验室实验项目,目的是为了帮助学生更好地理解和学习有关格式化字符串的漏洞和防御措施。 格式化字符串漏洞是一种常见的安全漏洞,它可以通过利用输入参数中的格式化字符串来修改程序的运行时栈。这可能导致程序崩溃、信息泄露甚至远程代码执行的风险。 在 seedlab 格式化字符串实验中,学生使用 C 语言开发和测试程序,其中包含格式化字符串漏洞。学生可以在程序中选择不同的输入参数,并通过格式化字符串的方式来触发漏洞。他们还可以使用不同的实验工具和技术来实时监测和分析程序的运行状况,并尝试修复漏洞。 在实验过程中,学生将会学习以下主题: 1. 格式化字符串的基本概念和原理; 2. 格式化字符串漏洞的成因和危害; 3. 格式化字符串攻击的实施方法和技巧; 4. 格式化字符串漏洞的防御措施和修复方法。 通过实践和实验,学生可以更深入地理解格式化字符串漏洞以及如何预防和修复这种类型的漏洞。此外,这个实验还提供了实际应用场景和技术,帮助学生提高他们的漏洞挖掘和应对能力。 总之,seedlab 格式化字符串实验是一个具有教育价值的实验项目,通过实践和实验,帮助学生学习和理解有关格式化字符串漏洞的知识和技术,并提供了防御这种漏洞的实际应用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值