2018年12月7日 字符串格式化2 format与函数1

tp7="i am \033[44;1m %(name)-25.6s\033[0m"%{"name":"sxj2343333"}
print(tp7)
#-为左对齐,\033[44;1m    \033[0m   为选取44色号的颜色

 

tp1="I am {},age{},{}"
tp2=tp1.format("sxj",18,"abc")
print (tp2)

tp3="I am {1},age{1},{1}"
tp4=tp3.format("sxj",18,"abc")
print(tp4)

 

 

2、Format方式

[[fill]align][sign][#][0][width][,][.precision][type]

    • fill           【可选】空白处填充的字符
    • align        【可选】对齐方式(需配合width使用)
      • <,内容左对齐
      • >,内容右对齐(默认)
      • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
      • ^,内容居中
    • sign         【可选】有无符号数字
      • +,正号加正,负号加负;
      •  -,正号不变,负号加负;
      • 空格 ,正号空格,负号加负;
    • #            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
    • ,            【可选】为数字添加分隔符,如:1,000,000
    • width       【可选】格式化位所占宽度
    • .precision 【可选】小数位保留精度
    • type         【可选】格式化类型
      • 传入” 字符串类型 “的参数
        • s,格式化字符串类型数据
        • 空白,未指定类型,则默认是None,同s
      • 传入“ 整数类型 ”的参数
        • b,将10进制整数自动转换成2进制表示然后格式化
        • c,将10进制整数自动转换为其对应的unicode字符
        • d,十进制整数
        • o,将10进制整数自动转换成8进制表示然后格式化;
        • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
        • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
      • 传入“ 浮点型或小数类型 ”的参数
        • e, 转换为科学计数法(小写e)表示,然后格式化;
        • E, 转换为科学计数法(大写E)表示,然后格式化;
        • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
        • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
        • g, 自动在e和f中切换
        • G, 自动在E和F中切换
        • %,显示百分比(默认显示小数点后6位)
      • tp1="I am {},age{},{}"
        tp2=tp1.format("sxj",18,"abc")
        print (tp2)
        
        tp3="I am {1},age{1},{1}"
        tp4=tp3.format("sxj",18,"abc")
        print(tp4)
        
        tp5="I am {name},age{age},{love}"
        tp6=tp5.format(** {"name":"sxj","age":18,"love":"mm"})
        print ("注意传递字典需要**加持",tp6)
        
        tp5="I am {name},age{age},{love}"
        tp7=tp5.format(name="sxj",age=111,love="mm")
        print(tp7)
        
        tp5="I am {:s},age{:d},{:.3f}"#用法同%一样
        tp8=tp5.format("sxj",18,44.5225222)
        print(tp8)
        
        tp5="I am {:s},age{:d},{:.3f}"
        tp9=tp5.format(*["sxj9",11111,22.33433])
        print("注意传递list用*加持",tp9)
        
        tp5="I am {name:s},age{age:d},{love:.3f}" #:s:d:f定义不同类型
        tp10=tp5.format(name="abc",age=232,love=89.9545)
        print(tp10)
        
        tpx="numbers:{:b},{:o},{:d},{:x},{:X},{:%}"
        tp11=tpx.format(12,16,3,40,40,0.33444)
        print(tp11) 







        print("函数定义")
        
        def test(x):
            " sxj "#函数定义描述 强烈建议
            x+=1
            return print(x) #返回打印值 或者直接返回x
        test(5)
        
        def test2():
            "abc"
            for i in range(5):
                i+=1
                print (i)
            return# 可以不写返回值
        test2()
        
        print("过程定义:没有return")
        print("return 也可以返回多个值")
        
        def test3():
            msg="test3"
            print(msg)
            return 1,2,3,4,[2,4,5,4],True# 以元祖的形式返回多个值
        t3=test3()
        print (test3())
        # 返回值=0 则返回 none
        # 返回值=1 返回object
        # 返回值 > 1 则返回tuple

 

 

def test(x,y,z):
    print(x)
    print(y)
    print(z)
test(y=2,x=1,z=4)
# 关键字参数位置无需固定,但不能少
#如果混用,位置参数必须在关键字参数左边
test(4,2,z=5)

def handle(x,type="sxj"):#设置type为默认参数
    print(x)
    print(type)
handle("hello")#默认参数可以不写
handle("abc","传递默认参数")

 

 

 

#  非固定参数组: ** 字典  *列表/元祖?
def test(x,*args):
    print (x)
    print (args)
test(1,2,3,4,5)
#输出2,3,4,5 组成的元祖 ,args为预留后续的可扩展
test(1,*['x','y','z']) #前面加*表示遍历整个列表
test(1,['x','y','z']) #如果没有*则表示列表作为一个整体

def test2(x,**kwargs):
    print(x)
    print(kwargs)
test2(1,y=2,z=3) #传递生成的是字典

def test3(x,*args,**kwargs):#代表能接受任何形式的参数
    print(x)
    print(args)
    print(kwargs)
print()
test3(1,*[2,3,4],**{"a":2,"b":4,"c":4})
print()
test3(1,[4,5,6],a=4,b=4,c=1)

posted @ 2018-12-07 22:02  小圣庄  阅读(347)  评论(0编辑  收藏  举报