设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 41385|回复: 27
打印 上一主题 下一主题

【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

27#
发表于 2021-8-11 23:52:23 |只看该作者
cheer 发表于 2021-8-11 11:15
饿 看不懂,尝试复制run也失败了。。

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

使用道具 举报

0

主题

0

好友

25

积分

新手上路

Rank: 1

26#
发表于 2021-8-11 11:15:16 |只看该作者
zzxomg 发表于 2015-3-12 21:08

饿 看不懂,尝试复制run也失败了。。
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

25#
发表于 2020-3-16 22:37:28 |只看该作者
哦哦UP 发表于 2020-3-16 21:21
你的这个序号怎么加上去的

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

使用道具 举报

0

主题

0

好友

40

积分

新手上路

Rank: 1

24#
发表于 2020-3-16 21:21:37 |只看该作者
zzxomg 发表于 2015-3-12 21:08

你的这个序号怎么加上去的
回复

使用道具 举报

0

主题

0

好友

40

积分

新手上路

Rank: 1

23#
发表于 2020-3-16 20:55:17 |只看该作者
手机公众号上是3.0版本的 这个是2.0版本
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

22#
发表于 2018-5-29 10:43:52 |只看该作者
  1. from random import randint

  2. num=randint(23,218)

  3. print('guess what i think?')

  4. bingo = False

  5. while bingo == False:
  6.     a=int(input())
  7.    
  8.     if a >num:
  9.         print('%d is too big'%a)

  10.     if a<num:
  11.         print ('%d is too small'%a)

  12.     if a==num:
  13.         print('excellent!bingo!congratulations!the correct answer is %d'%a)

  14.         bingo=True
复制代码
回复

使用道具 举报

1

主题

0

好友

23

积分

新手上路

Rank: 1

21#
发表于 2018-4-11 16:32:49 |只看该作者
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
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

20#
发表于 2018-1-13 23:07:02 |只看该作者
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)
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

19#
发表于 2016-12-20 19:33:44 |只看该作者
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
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

18#
发表于 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
回复

使用道具 举报

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

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

GMT+8, 2024-5-7 01:22 , Processed in 0.021449 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部