Crossin的编程教室
标题: 【Python 第14课】 字符串格式化 [打印本页]
作者: crossin先生 时间: 2014-4-23 17:28
标题: 【Python 第14课】 字符串格式化
我们在输出字符串的时候,如果想对输出的内容进行一些整理,比如把几段字符拼接起来,或者把一段字符插入到另一段字符中间,就需要用到字符串的格式化输出。
先从简单的开始,如果你想把两段字符连起来输出
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!
作者: Flughafencon 时间: 2015-1-4 21:54
本帖最后由 Flughafencon 于 2015-1-4 21:55 编辑
- from random import randint
- print "guess what i think?"
- bingo = False
- num = randint(1, 100)
- while bingo == False:
- answer = input()
- if answer < num:
- print str(answer) + " is too small!!"
- if answer > num:
- print str(answer) + " is too big!!"
- if answer == num:
- print str(answer) + "?, finally bingo!!"
- bingo = True
复制代码
作者: sunbin726 时间: 2015-1-17 12:32
from random import randint
num = randint(1,100)
print 'guess what i think?'
bingo = True
while bingo == True:
answer = input()
if answer < num:
print '%s is too small!' % answer
if answer > num:
print '%s is too big!' % answer
if answer == num:
print 'BINGO, %s is the right answer!' % answer
bingo = False
作者: zzxomg 时间: 2015-3-12 21:08
- #coding:utf-8
- #猜数游戏1.0
- #zzx 2015.03.12
- print '-------------------------欢迎光临新新猜数游戏,猜中了有大奖哦!-------------------'
- print '规则:1-10的整数,随机一个'
- from random import randint
- num = randint(1,11)
- while True :
- input_num =int(raw_input('输入你心仪的数吧:'))
- if input_num < num :
- print '您输入的数是:%d,小了哦' %input_num
- continue
- elif input_num > num :
- print '您输入的数是:%d,大了哦' %input_num
- continue
- elif input_num == num :
- print '您输入的的数是:%d,您很厉害啊,猜对了,亲亲!' %input_num
- brea
复制代码
作者: fix 时间: 2015-5-12 23:43
from random import randint
print 'which num?'
num = randint(1, 100)
answer =input()
while answer !=num:
if answer<num:
print '%d is too small'%answer
answer =input()
if answer>num:
print '%d is too big'%answer
answer = input()
while answer==num:
print '%d is right'%num
answer =111
作者: 草办 时间: 2015-12-3 09:46
简洁易懂。
作者: catherinemic 时间: 2015-12-28 13:44
前几天给装了win8.1,感觉速度快了一些,不过C盘可用空间掉得好快,想问crossin老师,我是不是只能去重新分区给C盘大一点空间呢?
-
Python9.png
(5.36 KB, 下载次数: 672)
作者: crossin先生 时间: 2015-12-28 16:23
catherinemic 发表于 2015-12-28 13:44
前几天给装了win8.1,感觉速度快了一些,不过C盘可用空间掉得好快,想问crossin老师,我是不是只能去重新分 ...
嗯,win的c盘消耗很快的,感觉100g都撑不了多久。尽量不放东西在c盘吧
作者: catherinemic 时间: 2015-12-29 11:12
crossin先生 发表于 2015-12-28 16:23
嗯,win的c盘消耗很快的,感觉100g都撑不了多久。尽量不放东西在c盘吧
看来只能去重新分区了,谢谢crossin老师~~
作者: Killuia 时间: 2016-4-27 16:22
from random import randint
num=randint(1,100)
print'Guess what I think?'
bingo=False
while bingo==False:
answer=input()
if answer<num:
print"%d is too small!"%answer
if answer>num:
print"%d is too big!"%answer
if answer==num:
print"%d is BINGO!"%answer
bingo=True
运行成功
作者: 十三才 时间: 2016-8-28 20:45
我看那位地板上的朋友有两行用elif来代替if,但是实际上对结果也没什么影响,elif和if有什么区别?
作者: crossin先生 时间: 2016-8-29 10:54
十三才 发表于 2016-8-28 20:45
我看那位地板上的朋友有两行用elif来代替if,但是实际上对结果也没什么影响,elif和if有什么区别? ...
看这里:
【Python 第23课】 if, elif, else
http://bbs.crossincode.com/forum ... d=909&fromuid=3
作者: 十三才 时间: 2016-8-29 10:56
crossin先生 发表于 2016-8-29 10:54
看这里:
【Python 第23课】 if, elif, else
http://bbs.crossincode.com/forum.php?mod=viewthread&tid= ...
后面会讲到啊,我一点一点来吧
作者: fjxc1893 时间: 2016-11-25 16:14
感谢!!!
作者: l0ve1o24 时间: 2016-12-4 18:22
from random import randint
num = randint(1,100)
print'guess waht i think?'
bingo = False
while bingo == False:
answer = input()
if answer < num:
print'%d is too small'%answer
if answer > num:
print'%d is too big'%answer
if answer == num:
print'%d is bingo'%answer
bingo = True
作者: 职业正经人 时间: 2016-12-12 16:00
from random import randint
num=randint(0,101)
print'''Guess what No. I'm thinking'''
answer=101
while answer!=num:
answer=input()
if answer>num:
print str(answer)+' is too big'
if answer<num:
print str(answer)+' is too small'
if answer==num:
print 'BINGO '+str(answer)+' is right the number I was thinking!'
作者: ponber 时间: 2016-12-19 21:05
from random import randint
num1=randint(1,50)
print 'guess what num i\'m thinking?'
bingo=False
while bingo==False:
x=input()
if x>num1:
print str(x)+' is too big'
if x<num1:
print str(x)+' is too small'
if x==num1:
print str(x)+' is the right answer'
bingo=True
num2=randint(1,50)
aa='Your answer '
print 'guess another num?'
bingo=False
while bingo==False:
y=input()
if y>num2:
print '%s'%aa+str(y)+' is too big'
if y<num2:
print '%s'%aa+str(y)+' is too small'
if y==num2:
print '%s'%aa+str(y)+' is right'
bingo=True
作者: ponber 时间: 2016-12-19 21:07
求点评!
作者: crossin先生 时间: 2016-12-20 14:06
ponber 发表于 2016-12-19 21:05
from random import randint
num1=randint(1,50)
可以的。
你可以再尝试用while循环,把它写成一个可以一直猜的程序
作者: ponber 时间: 2016-12-20 19:33
from random import randint
m=0
while m==0:
num=randint(1,50)
bingo=False
aa='Your answer '
print'Just guess and guess again,don\'t stop!\nDo what \
Mr Crossin told you to do,please!'
while bingo==False:
x=input()
if x<num:
print'%s'%aa+str(x)+' is small'
if x>num:
print'%s'%aa+str(x)+' is big'
if x==num:
print'%s'%aa+str(x)+' is bingo'
bingo=True
作者: rye 时间: 2018-1-13 23:07
from random import randint
answer = randint(1, 100)
print('Guess what number I\'m thinking?')
x = int(input())
while x != answer:
if x > answer:
print('%d is too big'% x)
x = int(input())
if x < answer:
print('%d is too small'% x)
x = int(input())
print('Bingo!%d is the right answer'% x)
作者: shan 时间: 2018-4-11 16:32
from random import randint
num=randint(1,100)
print('guess what is think')
bingo=False
while bingo== False:
answer=int(input())
if int(answer) < num:
print ('%s is too small'%answer)
if int(answer)>num:
print('%s is too big!'%answer)
if int(answer)==num:
print('BINGO!,%s is the right'%answer)
bingo=True
作者: suiersoda 时间: 2018-5-29 10:43
- from random import randint
- num=randint(23,218)
- print('guess what i think?')
- bingo = False
- while bingo == False:
- a=int(input())
-
- if a >num:
- print('%d is too big'%a)
- if a<num:
- print ('%d is too small'%a)
- if a==num:
- print('excellent!bingo!congratulations!the correct answer is %d'%a)
- bingo=True
复制代码
作者: 哦哦UP 时间: 2020-3-16 20:55
手机公众号上是3.0版本的 这个是2.0版本
作者: 哦哦UP 时间: 2020-3-16 21:21
zzxomg 发表于 2015-3-12 21:08
你的这个序号怎么加上去的
作者: crossin先生 时间: 2020-3-16 22:37
哦哦UP 发表于 2020-3-16 21:21
你的这个序号怎么加上去的
回复框里有个 <> 图标,点一下
作者: cheer 时间: 2021-8-11 11:15
zzxomg 发表于 2015-3-12 21:08
饿 看不懂,尝试复制run也失败了。。
作者: crossin先生 时间: 2021-8-11 23:52
cheer 发表于 2021-8-11 11:15
饿 看不懂,尝试复制run也失败了。。
他发的是py2的代码
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) |
Powered by Discuz! X2.5 |