设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 55868|回复: 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
回复

使用道具 举报

1

主题

1

好友

52

积分

注册会员

Rank: 2

沙发
发表于 2015-1-4 21:54:25 |只看该作者
本帖最后由 Flughafencon 于 2015-1-4 21:55 编辑
  1. from random import randint

  2. print "guess what i think?"
  3. bingo = False
  4. num = randint(1, 100)

  5. while bingo == False:
  6.     answer = input()

  7.     if answer < num:
  8.         print str(answer) + " is too small!!"

  9.     if answer > num:
  10.         print str(answer) + " is too big!!"

  11.     if answer == num:
  12.         print str(answer) + "?, finally bingo!!"
  13.         bingo = True
复制代码
回复

使用道具 举报

0

主题

0

好友

33

积分

新手上路

Rank: 1

板凳
发表于 2015-1-17 12:32:28 |只看该作者
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
回复

使用道具 举报

0

主题

0

好友

36

积分

新手上路

Rank: 1

地板
发表于 2015-3-12 21:08:22 |只看该作者
  1. #coding:utf-8
  2. #猜数游戏1.0
  3. #zzx 2015.03.12
  4. print '-------------------------欢迎光临新新猜数游戏,猜中了有大奖哦!-------------------'
  5. print '规则:1-10的整数,随机一个'
  6. from random import randint
  7. num = randint(1,11)

  8. while True :
  9.                 input_num =int(raw_input('输入你心仪的数吧:'))
  10.                 if input_num < num :
  11.                                 print '您输入的数是:%d,小了哦' %input_num
  12.                                 continue
  13.                 elif input_num > num :
  14.                                 print '您输入的数是:%d,大了哦' %input_num
  15.                                 continue
  16.                 elif input_num == num :
  17.                                 print '您输入的的数是:%d,您很厉害啊,猜对了,亲亲!' %input_num
  18.                                 brea
复制代码
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

5#
发表于 2015-5-12 23:43:08 |只看该作者

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
回复

使用道具 举报

0

主题

1

好友

132

积分

注册会员

Rank: 2

6#
发表于 2015-12-3 09:46:45 |只看该作者
简洁易懂。
回复

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

7#
发表于 2015-12-28 13:44:50 |只看该作者
前几天给装了win8.1,感觉速度快了一些,不过C盘可用空间掉得好快,想问crossin老师,我是不是只能去重新分区给C盘大一点空间呢?

Python9.png (5.36 KB, 下载次数: 677)

Python9.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

0

主题

1

好友

273

积分

中级会员

Rank: 3Rank: 3

9#
发表于 2015-12-29 11:12:14 |只看该作者
crossin先生 发表于 2015-12-28 16:23
嗯,win的c盘消耗很快的,感觉100g都撑不了多久。尽量不放东西在c盘吧

看来只能去重新分区了,谢谢crossin老师~~
回复

使用道具 举报

0

主题

0

好友

120

积分

注册会员

Rank: 2

10#
发表于 2016-4-27 16:22:54 |只看该作者
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
   
运行成功
回复

使用道具 举报

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

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

GMT+8, 2024-11-24 05:15 , Processed in 0.025917 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部