Crossin的编程教室

标题: 【Python 第16课】 字符串格式化2 [打印本页]

作者: crossin先生    时间: 2014-4-23 17:34
标题: 【Python 第16课】 字符串格式化2
之前我们说到,可以用%来构造一个字符串,比如
print '%s is easy to learn' % 'Python'

有时候,仅仅代入一个值不能满足我们构造字符串的需要。假设你现在有一组学生成绩的数据,你要输出这些数据。在一行中,既要输出学生的姓名,又要输出他的成绩。例如
Mike‘s score is 87.
Lily‘s score is 95.

在python中,你可以这样实现:
print "%s's score is %d" % ('Mike', 87)
或者
name = ‘Lily’
score = 95
print "%s's score is %d" % (name, score)

无论你有多少个值需要代入字符串中进行格式化,只需要在字符串中的合适位置用对应格式的%表示,然后在后面的括号中按顺序提供代入的值就可以了。占位的%和括号中的值在数量上必须相等,类型也要匹配。

('Mike', 87)这种用()表示的一组数据在python中被称为元组(tuple),是python的一种基本数据结构,以后我们还会用到。


作者: cross    时间: 2015-4-21 10:49
消灭零回复
作者: fix    时间: 2015-5-13 08:57
昨晚做完上一个题睡得觉,今早学几课再改论文。
作者: lovia    时间: 2015-5-27 20:00
  1. name="Crossin"
  2. age=72
  3. score=20
  4. print "%s's score is %s,and his age is %s"%(name,score,age)

  5. print"%s's score is %s,and his age is %s"%('Crossin',20,72)
复制代码

作者: 草办    时间: 2015-12-3 10:52
get
作者: 谢冰    时间: 2016-1-21 14:21
初学,不太懂原理,Python3.3上运行不出来结果,需要写成这样:print("{0}'s score is {1}".format('Mike',96))才能出结果。
作者: crossin先生    时间: 2016-1-22 12:18
谢冰 发表于 2016-1-21 14:21
初学,不太懂原理,Python3.3上运行不出来结果,需要写成这样:print("{0}'s score is {1}".format('Mike', ...

是的,python3字符串格式化和print都改过语法了
作者: 对不起我是保镖    时间: 2016-4-4 13:00
print " %s's score is %d" % (name ,score)
%s   %d分别表示str类型和整数

作者: 追风    时间: 2016-5-1 15:42
学了这一课我就在想,能不能重复输入名字和成绩呢?于是,哈哈,就琢磨出下面的小程序:
1.png

作者: 追风    时间: 2016-5-2 08:46
练习8:输出乘法表,我想出了一个更具一般性的小程序
1.png

作者: crossin先生    时间: 2016-5-2 13:10
追风 发表于 2016-5-2 08:46
练习8:输出乘法表,我想出了一个更具一般性的小程序

蛮好的
作者: 追风    时间: 2016-5-2 14:44
crossin先生 发表于 2016-5-2 13:10
蛮好的

谢谢Crossin老师!
作者: lubvi    时间: 2017-10-24 11:15
追风 发表于 2016-5-1 15:42
学了这一课我就在想,能不能重复输入名字和成绩呢?于是,哈哈,就琢磨出下面的小程序:

...

请问,py3的话  要怎么改呢
作者: woodumpling    时间: 2017-10-25 09:26
py3中,print使用时需带上括号,print()在3中是一个函数




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5