格式化_格式化输出 - CSDN
精华内容
参与话题
  • %、.format()格式化

    千次阅读 2018-11-19 11:16:15
    %格式化形式: %[(name)][flags][width].[precition]typecode name:(可选)用于选择指定的key flags:(可选)+左对齐、-右对齐 width:(可选)宽度 preciton:(可选)精度,默认位保留6位 typecode:必选...

    %格式化形式:

    %[(name)][flags][width].[precition]typecode
    

    name:(可选)用于选择指定的key
    flags:(可选)+左对齐、-右对齐
    width:(可选)宽度
    preciton:(可选)精度,默认位保留6位
    typecode:必选
    s:字符串类型,但可以放入任何类型
    f:浮点数,默认保留6位
    b:将数字转换为2进制放入指定位置
    d:将数字转为整型放入指定位置
    x:将数字转为十六进制放入指定位置

    几个例子

     message = "I am %.s , my hobby is swim" %'alex'
    print(message)
    

    传入浮点数并设置精度

    message = "percent %.f" % 99.12345678
    print(message)
    

    传入字典

    message = "I am %(name)s, age%(age)d"%{"name":"alex", "age":18}
    print(message)
    

    出现百分号

    message = "percent%.2f %%"%99.1234
    print(message)
    

    .format()格式化形式

    字符串.format(字符串、数字等)
    

    几个例子
    按照引索替换

    s = "I am {0},age{1[2]}".format("Alex", [16, 17, 18])
    print(s)
    

    按照key替换

    s = "I am {name},age{age}".format(name = "Alex", age = 18)
    print(s)
    

    当.format()格式化占位符内未输入引索或key则按照顺序替换。

    s = "I am {}, age{}".format("alex", 18)
    print(s)
    

    .format()格式化括号内的值必须比占位符要多,少于占位符会报错,多余占位符无影响

    s = "I am {}, age{}".format("alex", 18, 19, 20)
    print(s)
    

    .format()传入字典

    s = "I am {name}, age{age}".format(**{"name" : "alex", "age" : 18})
    print(s)
    

    .format()传入列表

    s = "I am {1}, age {2}".format(*[0, "alex", 18])
    print(s)
    

    占位符内可带参数,表明需要转换为的类型

    s = "I am {0:s}, age{1:x}".format("Alex", 18)
    print(s)
    
    展开全文
  • 此笔记讲述了如何对字符串进行格式化输出~ 2 改变print()输出的颜色 这里我们可以通过字符串命令来改变**print()**输出的颜色; 例如下面的代码: def warning(*args): print("\033[35m" + " ".join(args)+"\033[0...

    1 前言

    此笔记讲述了如何对字符串进行格式化输出~

    2 改变print()输出的颜色

    这里我们可以通过字符串命令来改变**print()**输出的颜色;
    例如下面的代码:

    def warning(*args):
        print("\033[35m" + " ".join(args)+"\033[0m")
        pass
    

    可以将输出的颜色变成洋红~
    关于文字颜色的设置,可以参考这两篇博文:

    3 如何将list转为str

    我们可以使用str.join()函数来讲string数组连接起来,

    "".join(args)
    

    如果希望中间加入空格,则可以写为

    " ".join(args)
    

    4 变量的格式化输出——str.format()

    对于变量的格式化输出,我们可以使用str.format()来设定变量输出的格式;

    展开全文
  • 1、python格式化输出历史起源 python2.5之前,我们使用的是老式格式化输出:%s,从python3.0开始(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是利用format()函数,进行格式化输出。 2、...
    1、python格式化输出历史起源
    • python2.5之前,我们使用的是老式格式化输出:%s。从python3.0开始起(python2.6同期发布),同时支持两个版本的格式化,多出来的一个新版本就是利用format()函数,进行格式化输出。
    2、为什么要学习python3支持的新式格式化输出呢?
    • 虽然老式的语法,兼容性很好,但是它的功能很少,很难完成复杂的任务,而format()函数进行格式化输出,功能更加强大,从下面的学习中你会慢慢体会到。
    3、基本用法
    a = "%s张飞%s关羽%s刘备%s赵云" % (1,2,3,4)
    display(a)
    
    b  = "{}张飞{}关羽{}刘备{}赵云".format(1,2,3,4)
    display(b)
    

    结果如下:
    在这里插入图片描述

    1)format()支持位置格式化填充,%s不支持;
    • 第一种方式:大括号{ }中写的是format()传入值所对应的下标。
    • 第二种方式:大括号{ }中的变量,和format()传入值是一一对应的。
    # --------------------方式一-----------------------
    c = "{3}张飞{1}关羽{2}刘备{0}赵云".format(1,2,3,4)
    display(c)
    # --------------------方式二-----------------------
    def my_hobbies(fruit,ball,drink):
        hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink)
        return hobbies
    
    fruit = "apple"
    ball = "basketball"
    drink = "milk"
    my_hobbies(fruit,ball,drink)
    # --------------------方式二-----------------------
    fruit = "apple"
    ball = "basketball"
    drink = "milk"
    hobbies = "我喜欢水果{fruit},我也喜欢球类{ball},我还喜欢饮料{drink}".format(ball=ball,fruit=fruit,drink=drink)
    display(hobbies)
    

    结果如下:
    在这里插入图片描述

    4、填充和对齐
    1)填充(只能用一个字符进行填充)

    ① 什么是填充?

    • 概念:当指定了字符串最终的长度,但是现有的字符串没有那么长,那么我们就用某种字符(填充字符)来填满至这个长度,这就是“填充”。

    ② %s:实现填充功能;

    a = "%s" % ("张飞")
    display(a)
    
    b = "%10s" % ("张飞")
    display(b)
    

    结果如下:
    在这里插入图片描述
    ③ format():实现填充功能;

    c = "{}".format("张飞")
    display(c)
    
    d = "{:10}".format("张飞")
    display(d)
    

    结果如下:
    在这里插入图片描述
    总结如下:通过上述案例结果呈现,当使用的是%s,进行字符串填充的时候,默认是在原字符串左侧进行填充;当使用的是format(),进行字符串填充的时候,默认是在原字符串右侧进行填充。这就是我们下面要讲述的"对齐"。

    2)对齐

    ① 什么是对齐?

    • 概念:"对齐"要与"填充"一起使用,才会显得有意义。当我们进行填充的时候,我们可以选择只在字符串左侧填充,也可以选择只在字符串右侧填充,还可以选择在字符串两侧填充(字符串居中显示的填充方式)。

    ② %s:实现对齐功能,只有左对齐和右对齐;

    # 左填充
    a = '%10s' % ('张飞')
    display(a)
    # 右填充
    b = '%-10s' % ('张飞')
    display(b)
    

    结果如下:
    在这里插入图片描述
    ③ format():实现对齐功能,不仅有左对齐和右对齐,还有居中对齐;

    # 左填充
    a = '{:>10}'.format('张飞')
    display(a)
    
    # 右填充
    b = '{:<10}'.format('张飞')
    display(b)
    
    # 居中填充
    c = '{:^10}'.format('张飞')
    display(c)
    

    结果如下:
    在这里插入图片描述
    ④ 使用"特定符号"进行填充;

    • 旧版语法中(%s),使用"特定符号"填充,很麻烦,不直接,你也不用去管。这里主要看新版语法中(format()函数),进行"特定符号"填充。
      在这里插入图片描述
    5、截断
    • 概念:如果我们指定的"截断长度",比实际给出的"字符串"的长度要短,会发生截断。
    1)长度和截断长度的区别

    ① 什么是长度?

    • “{:8}”.format(“xishi is beautiful”)中,这个8表示的是填充长度,又成为长度,当字符串长度小于这个长度8的时候,会发生填充;当字符串长度大于这个长度8的时候,长度无效,返回的仍然是原来的字符串。

    操作如下:

    a = "{:8}".format("xishi")
    display(a)
    
    b = "{:8}".format("xishi is beautiful")
    display(b)
    

    结果如下:
    在这里插入图片描述
    ② 什么是截断长度?

    • “{:10.8}”.format(“xishi is beautiful”)中,这个".8"叫做截断长度,这个10叫做填充长度。
    • 注意:只有字符串的长度大于这个阶段长度的时候,才会发生截断。当既有截断长度,又有填充长度的时候一般先进行截断,截断后再进行填充。

    操作如下:

    a = "{:.8}".format("xishi is beautiful")
    display(a)
    
    # 当字符串长度,小于截断长度,返回原始字符串,截断长度无效;
    b = "{:.8}".format("abc")
    display(b)
    

    结果如下:
    在这里插入图片描述
    ③ 填充长度和截断长度的联合使用

    a = "{:*>15.8}".format("xishi is beautiful")
    display(a)
    

    结果如下:
    在这里插入图片描述
    注意:当既有截断长度,又有填充长度的时候一般先进行截断,截断后,再进行填充。

    ④ 使用%s完成截断

    a = "%.8s" % ("xishi is beautiful")
    display(a)
    
    b = "%15.8s" % ("xishi is beautiful")
    display(b)
    

    结果如下:
    在这里插入图片描述

    6、格式化输出中,与数字相关的语法
    1)引入案例
    a = '{}-{}'.format("1","2")
    display(a)
    
    b = '{}-{}'.format(1,2)
    display(b)
    

    结果如下:
    在这里插入图片描述
    存在的问题:
    在这里插入图片描述

    2)填充整数,使用d

    ① 使用%s完成整数的填充;

    a = '%5d' % (3000)
    display(a)
    
    b = '%d' % ("3000")
    display(b)
    

    结果如下:
    在这里插入图片描述
    ② 使用format()完成整数的填充;

    a = '{:$>5d}'.format(3000)
    display(a)
    
    b = '{:¥>5d}'.format(3000)
    display(b)
    

    结果如下:
    在这里插入图片描述

    3)填充浮点数,使用f(这个才是最常用的,用于保留小数点的位数);

    ① 引入案例

    a = '{:f}'.format(3.14159268)
    display(a)
    
    b = '{:f}'.format(3.1415921)
    display(b)
    
    c = '{:f}'.format(312)
    display(c)
    
    d = '{:d}'.format(12,34)
    display(d)
    

    结果如下:
    在这里插入图片描述
    存在的问题:
    在这里插入图片描述
    ② 使用%s完成浮点数填充,保留2位有效数字;

    a = '%.2f' % (3.1415)
    display(a)
    

    结果如下:
    在这里插入图片描述
    ③ 使用format()完成浮点数的填充,保留2位有效数字;

    b = '{:.2f}'.format(3.1415)
    display(b)
    
    c = '{:$>5.2f}'.format(3.1415)
    display(c)
    

    结果如下:
    在这里插入图片描述
    注意:在使用浮点数填充的时候,用的最多的就是保留几位有效数字,由于返回值默认是保留6位小数,因此需要配合使用"截断"。

    展开全文
  • String.format()的使用(Java字符串格式化

    万次阅读 多人点赞 2018-09-19 14:15:14
    当我们在开发中需要格式化时或者当一字符串中有某一部分是需要变化时,我们应该如何快速的进行处理呢?比如处理批量的url中www.xxx.com/s?index=后面需要带参数时。 JDK1.5开始String类中提供了一个非常有用的方法 ...

    1 问题背景

    当我们在开发中需要格式化时或者当一字符串中有某一部分是需要变化时,我们应该如何快速的进行处理呢?比如处理批量的url中www.xxx.com/s?index=后面需要带参数时。
    JDK1.5开始String类中提供了一个非常有用的方法
    String.format(String format, Object ... args)
    举例说明:

       String url ="www.xxx.com/s?index=%d";
       for(int i=1;i<=5;i++) {
    		String format = String.format(url, i);
    		System.out.println(format);
       }
    

    执行结果:

    www.xxx.com/s?index=1
    www.xxx.com/s?index=2
    www.xxx.com/s?index=3
    www.xxx.com/s?index=4
    www.xxx.com/s?index=5
    

    2 常规类型的格式化

    format()方法有两种重载形式。
    format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
    format(Locale locale, String format, Object… args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。

    类型如下:
    类型
    下面通过代码加深对该方法的理解 示例代码如下:

    String str1=String.format("Hi,%s", "哈士奇");  
    System.out.println(str1);  
    String str2=String.format("Hi,%s:%s.%s", "老鹰","是一种","鸟类");            
    System.out.println(str2);                           
    System.out.printf("字母h的大写是:%c %n", 'H');  
    System.out.printf("12.34>33.22的结果是:%b %n", 12.34>33.22);  
    System.out.printf("100的一半是:%d %n", 100/2);  
    System.out.printf("100的16进制数是:%x %n", 100);  
    System.out.printf("100的8进制数是:%o %n", 100);  
    System.out.printf("100元的书包打8.5折扣是:%f 元%n", 100*0.85);  
    System.out.printf("100的16进制浮点数是:%a %n", 100*0.85);  
    System.out.printf("100的指数表示:%e %n", 100*0.85);  
    System.out.printf("10的指数和浮点数结果的长度较短的是:%g %n", 100*0.85);  
    System.out.printf("100的折扣是%d%% %n", 85);  
    System.out.printf("字母A的散列码是:%h %n", 'A');  
    

    输出结果如下:

    Hi,哈士奇
    Hi,老鹰:是一种.鸟类
    字母h的大写是:H 
    12.34>33.22的结果是:false 
    100的一半是:50 
    10016进制数是:64 
    1008进制数是:144 
    100元的书包打8.5折扣是:85.00000010016进制浮点数是:0x1.54p6 
    100的指数表示:8.500000e+01 
    10的指数和浮点数结果的长度较短的是:85.0000 
    100的折扣是85% 
    字母A的散列码是:41 
    

    3 搭配转换符的标志

    在这里插入图片描述

    4 日期和事件字符串格式化

    在这里插入图片描述
    示例代码:

     Date date=new Date();                                  
     //c的使用  
     System.out.printf("全部日期和时间信息:%tc%n",date);          
     //f的使用  
     System.out.printf("年-月-日格式:%tF%n",date);  
     //d的使用  
     System.out.printf("月/日/年格式:%tD%n",date);  
     //r的使用  
     System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);  
     //t的使用  
     System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);  
     //R的使用  
     System.out.printf("HH:MM格式(24时制):%tR",date);  
    

    执行结果:

    全部日期和时间信息:星期三 九月 19 13:47:42 CST 2018--日格式:2018-09-19//年格式:09/19/18
    HH:MM:SS PM格式(12时制):01:47:42 下午
    HH:MM:SS格式(24时制):13:47:42
    HH:MM格式(24时制):13:47
    

    5 时间格式转换符

    在这里插入图片描述
    示例代码:

    Date date = new Date();  
    //H的使用  
    System.out.printf("2位数字24时制的小时(不足2位前面补0):%tH%n", date);  
    //I的使用  
    System.out.printf("2位数字12时制的小时(不足2位前面补0):%tI%n", date);  
    //k的使用  
    System.out.printf("2位数字24时制的小时(前面不补0):%tk%n", date);  
    //l的使用  
    System.out.printf("2位数字12时制的小时(前面不补0):%tl%n", date);  
    //M的使用  
    System.out.printf("2位数字的分钟(不足2位前面补0):%tM%n", date);  
    //S的使用  
    System.out.printf("2位数字的秒(不足2位前面补0):%tS%n", date);  
    //L的使用  
    System.out.printf("3位数字的毫秒(不足3位前面补0):%tL%n", date);  
    //N的使用  
    System.out.printf("9位数字的毫秒数(不足9位前面补0):%tN%n", date);  
    //p的使用  
    String str = String.format(Locale.US, "小写字母的上午或下午标记(英):%tp", date);  
    System.out.println(str);   
    System.out.printf("小写字母的上午或下午标记(中):%tp%n", date);  
    //z的使用  
    System.out.printf("相对于GMT的RFC822时区的偏移量:%tz%n", date);  
    //Z的使用  
    System.out.printf("时区缩写字符串:%tZ%n", date);  
    //s的使用  
    System.out.printf("1970-1-1 00:00:00 到现在所经过的秒数:%ts%n", date);  
    //Q的使用  
    System.out.printf("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n", date); 
    

    执行结果:

    2位数字24时制的小时(不足2位前面补0:14
    2位数字12时制的小时(不足2位前面补0:02
    2位数字24时制的小时(前面不补0:14
    2位数字12时制的小时(前面不补0:2
    2位数字的分钟(不足2位前面补0:12
    2位数字的秒(不足2位前面补0:49
    3位数字的毫秒(不足3位前面补0:796
    9位数字的毫秒数(不足9位前面补0:796000000
    小写字母的上午或下午标记():pm
    小写字母的上午或下午标记(中):下午
    相对于GMT的RFC822时区的偏移量:+0800
    时区缩写字符串:CST
    1970-1-1 00:00:00 到现在所经过的秒数:1537337569
    1970-1-1 00:00:00 到现在所经过的毫秒数:1537337569796
    
    展开全文
  • Python3学习3 格式化 % format

    千次阅读 2019-02-01 20:31:33
    一、%格式化 1.整数输出 %d # 十进制 %o # 八进制 %x # 十六进制 print(&amp;quot;%d&amp;quot;%23) # 23 print(&amp;quot;%o&amp;quot;%23) # 27 print(&amp;quot;%x&amp;quot;%...
  • IDEA 代码格式化

    万次阅读 2018-07-16 17:52:57
    一键格式化代码: Ctrl+Alt+L 全局搜索替换:ctrl+shift+r 强大的搜索功能,shift+shift (无论您想要搜啥都能找到) ctrl+shift+R==搜索类 CTRL+N:按照类名搜索类 【常规】 Ctrl+Shift + Enter,语句完成 ...
  • 格式化————format

    2018-12-19 17:07:47
    1. 字符串 2. 日期:DateFormat //DateFormat Date d=new Date(); DateFormat df=DateFormat.getDateInstance();...//格式YYYY-MM-dd getDateInstance()—YYYY-MM-dd getDateTimeInstance—YYYY-MM...
  • 文章目录0x00.看题0x01.检查保护0x02.利用fmtstr_payload构造payload 0x00.... 健身回来,继续刷第二题,貌似和上一题一个风格啊。连名字都差不多,偏工业实际。不过这一题学到了一个新东西,fmtstr_payload. ...
  • HTML格式规范

    千次阅读 2019-02-25 15:30:54
    文件格式 字符编码 字符编码必须是UTF-8无BOM格式 VS Code → 文件 › 首选项 › 设置 › 文件 › Encoding › utf8 行尾序列 必须设置为Unix (LF)? VS Code → 文件 › 首选项 › 设置 › 文件 › Eol › \...
  • 格式化字符串漏洞原理详解

    万次阅读 多人点赞 2019-01-12 16:04:05
    菜鸡刚学总结下。 理解这个漏洞的原理,你需要有汇编层面的函数调用和函数的参数传递知识。如果你不清楚函数的参数是如何传递的,可以看《加密与解密》的逆向分析技术篇,也可以参考我博客里的... ...
  • python 中str format 格式化数字补0方法

    千次阅读 2019-06-12 21:05:35
    转https://www.cnblogs.com/sthinker/p/7456034.html >>> "{0:03d}".format(1) '001' >>> "{0:03d}".format(10) '010' >>> "{0:03d}".format(100) '100'
  • 在文件的开始处添加如下代码: #-*-coding:utf-8-*-
  • idea格式化代码快捷键

    万次阅读 多人点赞 2018-08-17 10:03:41
    idea格式化代码快捷键: Ctrl+Alt+L  
  • VisualStudio代码格式化的几个方法

    万次阅读 多人点赞 2015-11-07 23:22:59
    有时我们从其他地方复制过来的代码当粘贴到VS中时,代码缩进的格式已经没有了,这样看代码十分不直观,自己重新排版又太慢,还好VS中已经为我们提供了自动格式化的功能,下面是格式化的几种方法,VS2008即以后的各个...
  • phpstorm格式化代码快捷键

    万次阅读 2017-10-10 15:33:13
    PHPSTORM格式化代码快捷键: windows平台:Ctrl+Alt+L mac平台:Command+Alt+L
  • VSCode 代码格式化 快捷键

    万次阅读 多人点赞 2019-07-04 12:11:06
    Visual Studio Code可以通过以下快捷键 格式化代码: On Windows Shift+Alt+F On Mac Shift+Option+F On Ubuntu Ctrl+Shift+I 转载于:https://www.cnblogs.com/ryanzheng/p/10950870.html...
  • AndroidStudio-快捷键-格式化代码

    万次阅读 2018-07-06 11:45:48
    Windows: Ctrl + Alt +L (Ctrl +Shift+F 无效) (亲测,和qq热键冲突,我的解决方式是把qq除捕获屏幕外的热键全部设置为无) Mac: OPTION + CMD + L
  • eclipse中格式化代码快捷键

    万次阅读 2018-06-09 19:25:36
    1.主要是用来整理代码格式
  • IDEA中格式化代码快捷键

    万次阅读 多人点赞 2017-03-21 21:17:51
    一鍵格式化代碼: Ctrl+Alt+L快捷鍵汇总參考鏈接Intellij IDEA 快捷键整理(TonyCody)Eclipse常用快捷键汇总
  • vscode 格式化json

    万次阅读 2017-04-19 17:41:16
    安装扩展插件 json-tools 快捷键 ctrl + alt + m https://marketplace.visualstudio.com/items?itemName=eriklynd.json-tools
1 2 3 4 5 ... 20
收藏数 2,124,449
精华内容 849,779
关键字:

格式化