格式化输出%和format

#字符串和格式化输出练习
#对字符串进行的任何操作都不是改变字符串本身,而是生成一个新的字符串
.操作函数名()
在字符串中占位可以用%或{},后面用%()或format函数输入参数
" {} {} “.format(,)
" %s %s” %(,)
新手一定要注意format前面有.这个符号

s = str(3210)
for i in s:
    print("倒计时:{}".format(i))

print('下面是正文'.center(50,"-"))

r = 'hello world'
R = r.upper()
#hello world---HELLO WORLD
print(r + "---" + R)#+连接
print("%s---%s" % (r,R))#%格式化顺序定位
print("{}---{}".format(r,R))#顺序定位
print("{1}---{0}".format(R,r))#索引定位
print("{lower}---{upper}".format(lower=r,upper=R))#关键字定位

print('正文结束'.center(50,"-"))

#字符串和格式化输出练习
#对字符串进行的任何操作都不是改变字符串本身,而是生成一个新的字符串
a = " hello world "
print("oringinal word:\nhello world ")
print("大写:"+a.upper())
print("首字母大写:"+a.capitalize())
print("w换成p:"+a.replace("w","p"))
print("以o分割:{}".format(a.split("o")))
print("以l分割:%s"%a.split("l"))
print("去除两边空格:"+a.strip())
print("查找l:")
print(a.find("l"))
#递归函数,首个字符挪到最后,直到没有字符可以挪动,返回值输出在最前面
def reverse(s):
    if s == "":
        return "翻转过来的结果是:"
    else:
        return reverse(s[1:]) + s[0]
print(reverse(a))
'''1、整数输出

%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
2、浮点数输出

%f ——保留小数点后面六位有效数字
  %.3f,保留3位小数位
%e ——保留小数点后面六位有效数字,指数形式输出
  %.3e,保留3位小数位,使用科学计数法
%g ——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法
  %.3g,保留3位有效数字,使用小数或科学计数法
3、字符串输出

%s
%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
format
1、位置匹配

(1)不带编号,即“{}”
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”
2、格式转换

'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
# f"xxxx"
# 可在字符串前加f以达到格式化的目的,在{}里加入对象,此为format的另一种形式:
'''
name="huibif"
age=18.5
hobby="badminton ,tennis , pingpang and the game of go"
print(f"我的名字叫{name.capitalize()},年龄{age}岁,我喜欢{hobby}!")
print("我的名字叫{},年龄{}岁,我喜欢{}!".format(name.capitalize(),age,hobby))
print("我的名字叫{a:8.4s},年龄{b:-8g}岁,我喜欢{c}!".format(b=age,a=name.capitalize(),c=hobby))
print("我的名字叫{2},年龄{1:8.3f}岁,我喜欢{0}!".format(hobby,age,name.capitalize()))
#我们可以看到format输出,更加灵活,可以按照顺序,可以按照编号,也可以按照关键字来输出.
print("我是分割线".center(40))
print("我的名字叫%s,年龄%8.3s,我喜欢%s" % (name,age,hobby))
#%s和{} 可以输入数字\列表等等各种形式.{:s}是不可以输入数字的,必须输入字符串
ret=[name,age,hobby]
print("我们测试的是%s"%ret)
print("我们测试的是{}".format(ret))
#%d和{:n} #%d自动将浮点转为整数
print("我的名字叫%s,年龄%d岁,我喜欢%s" % (name,age,hobby))#18岁
#{:n}输入的是数字格式即可,可输入整数和浮点数形式
print("我的名字叫{},年龄{:n}岁,我喜欢{}".format(name,age,hobby))#18.5岁
print("我的名字叫{},年龄{:n}岁,我喜欢{}".format(name,int(age),hobby))#18岁

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值