免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8947 | 回复: 7

python百分号的意思? [复制链接]

论坛徽章:
0
发表于 2012-01-19 14:38 |显示全部楼层
def progress(width, percent):
    print "%s %d%%\r" % (('%%-%ds' % width) % (width * percent / 100 * "="), percent),
    if percent >= 100:
        print
        sys.stdout.flush()
这段代码中 '%%-%ds' 百分号什么意思?

论坛徽章:
0
发表于 2012-01-20 09:40 |显示全部楼层
木有人知道?

论坛徽章:
0
发表于 2012-01-20 10:43 |显示全部楼层
  1. ('%%-%ds' % 24)   # 结果为: '%-24s'

  2. # 代入到 ('%%-%ds' % width) % (width * percent / 100 * "=")
  3. '%-24s% (24 * 50 / 100 * "=")
  4. # 结果为 ============
复制代码

论坛徽章:
0
发表于 2012-01-20 13:26 |显示全部楼层
大概知道怎样用,但不会解释

论坛徽章:
0
发表于 2012-01-20 14:52 |显示全部楼层
回复 3# greatghoul


    ok

论坛徽章:
0
发表于 2012-01-20 16:40 |显示全部楼层
%d 是格式控制字符,类似的有%s, %f,%e 等
%% 输出一个%

论坛徽章:
0
发表于 2012-07-29 13:22 |显示全部楼层
本帖最后由 bzhao 于 2012-07-29 13:23 编辑

>>> '%%-%ds' % 10
'%-10s
>>> "%-10s" % (10 * "=")
'=========='

论坛徽章:
0
发表于 2012-07-29 22:28 |显示全部楼层
本帖最后由 crifan 于 2012-07-29 22:29 编辑

%+一个字母,类似于C语言中最常用的printf,所指的是字符串的格式化。
不同的字母,标示不同的变量的类型。
最常见的有%d表示数字,%s表示字符串,%f表示浮点数等。
当然还有辅助的数字,前缀0等,去更加控制更加复杂的格式,详情去学习printf的字符串格式化参数。
而如果想要打印输出%字符本身,对应的就用%%表示了。
(类似的做法,就像正则表达式中想要输出反斜杠,用\\来表示一样。)
举例:

【C语言】
  1. int intVal = 123;
  2. char stringVal[5] = "hello";
  3. printf("%d,%s", intVal, stringVal);//输出:123,hello
复制代码

【Python语言】
  1. intVal = 123;
  2. stringVal = "hello";
  3. print "%d" % intVal; #输出:123
  4. print "%s" % stringVal; #输出:hello
  5. #遇到多个变量,用括号括起来:
  6. print "%d,%s" % (intVal, stringVal); #输出:123,hello
复制代码

python中更加复杂的打印输出,可以使用logging模块。
其输出用法,和printf非常类似。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP