设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第14课】 字符串格式化

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-23 17:28:42 |显示全部楼层 |倒序浏览
我们在输出字符串的时候,如果想对输出的内容进行一些整理,比如把几段字符拼接起来,或者把一段字符插入到另一段字符中间,就需要用到字符串的格式化输出。

先从简单的开始,如果你想把两段字符连起来输出
str1 = 'good'
str2 = 'bye'

你可以
print str1 + str2

或者还可以把字符变量一个字符串相加
print 'very' + str1
print str1 + ' and ' + str2

但如果你想要把一个数字加到文字后面输出,比如这样
num = 18
print 'My age is' + num
程序就会报错。因为字符和数字不能直接用+相加。

一种解决方法是,用str()把数字转换成字符串
print 'My age is' + str(18)
num = 18
print 'My age is' + str(num)

还有一种方法,就是用%对字符串进行格式化
num = 18
print 'My age is %d' % num
输出的时候,%d会被%后面的值替换。输出
My age is 18

这里,%d只能用来替换整数。如果你想格式化的数值是小数,要用%f
print ‘Price is %f’ % 4.99
输出
Price is 4.990000

如果你想保留两位小数,需要在f前面加上条件:%.2f
print ‘Price is %.2f’ % 4.99
输出
Price is 4.99

另外,可以用%s来替换一段字符串
name = 'Crossin'
print '%s is a good teacher.' % name
输出
Crossin is a good teacher.

或者
print 'Today is %s.' % 'Friday'
输出
Today is Friday.

注意区分:有引号的表示一段字符,没有引号的就是一个变量,这个变量可能是字符,也可能是数字,但一定要和%所表示的格式相一致。

现在,试试看用字符串格式化改进一下之前你写的小游戏。
比如你输了一个数字72,程序会回答你
72 is too small.
或者
Bingo, 72 is the right answer!

#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2015-12-28 16:23:09 |显示全部楼层
catherinemic 发表于 2015-12-28 13:44
前几天给装了win8.1,感觉速度快了一些,不过C盘可用空间掉得好快,想问crossin老师,我是不是只能去重新分 ...

嗯,win的c盘消耗很快的,感觉100g都撑不了多久。尽量不放东西在c盘吧
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2016-8-29 10:54:12 |显示全部楼层
十三才 发表于 2016-8-28 20:45
我看那位地板上的朋友有两行用elif来代替if,但是实际上对结果也没什么影响,elif和if有什么区别? ...

看这里:
【Python 第23课】 if, elif, else
http://bbs.crossincode.com/forum ... d=909&fromuid=3
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2016-12-20 14:06:45 |显示全部楼层
ponber 发表于 2016-12-19 21:05
from random import randint
num1=randint(1,50)

可以的。
你可以再尝试用while循环,把它写成一个可以一直猜的程序
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

5#
发表于 2020-3-16 22:37:28 |显示全部楼层
哦哦UP 发表于 2020-3-16 21:21
你的这个序号怎么加上去的

回复框里有个 <> 图标,点一下
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2021-8-11 23:52:23 |显示全部楼层
cheer 发表于 2021-8-11 11:15
饿 看不懂,尝试复制run也失败了。。

他发的是py2的代码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-3 07:13 , Processed in 0.019376 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部