设为首页收藏本站

Crossin的编程教室

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

【Python 第17课】 类型转换

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2014-4-23 17:36:01 |只看该作者 |倒序浏览
python的几种最基本的数据类型,我们已经见过:

字符串
整数
小数 (浮点数)
bool类型

python在定义一个变量时不需要给它限定类型。变量会根据赋给它的值,自动决定它的类型。你也可以在程序中,改变它的值,于是也就改变了它的类型。例如

a = 1
print a
a = 'hello'
print a
a = True
print a

变量a先后成为了整数、字符串、bool类型。

虽然类型可以随意改变,但当你对一个特定类型的变量进行操作时,如果这个操作与它的数据类型不匹配,就会产生错误。比如以下几行代码

print ‘Hello’+1
print ‘hello%d’ % '123'

程序运行时会报错。因为第一句里,字符串和整数不能相加;第二句里,%d需要的是一个整数,而'123'是字符串。

这种情况下,python提供了一些方法对数值进行类型转换:

int(x) #把x转换成整数
float(x) #把x转换成浮点数
str(x) #把x转换成字符串
bool(x) #把x转换成bool值

上述两个例子就可以写成:

print ‘Hello’+str(1)
print ‘hello%d’ % int('123')

以下等式的结果均为真:

int('123') == 123
float('3.3') == 3.3
str(111) == '111'
bool(0) == False

并不是所有的值都能做类型转换,比如int('abc')同样会报错,python没办法把它转成一个整数。

另外关于bool类型的转换,我们会专门再详细说明。大家可以先试试以下结果的值,自己摸索一下转换成bool类型的规律:

bool(-123)
bool(0)
bool('abc')
bool('False')
bool('')

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

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

沙发
发表于 2014-4-29 14:08:09 |只看该作者
bool(-123)     True
bool(0)          False
bool('abc')     True
bool('False')   True
bool('')          False
回复

使用道具 举报

0

主题

0

好友

215

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2015-4-21 10:56:16 |只看该作者
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

地板
发表于 2015-5-7 15:35:02 |只看该作者
空和0是False  其他是True
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

5#
发表于 2015-5-13 09:18:52 |只看该作者
在new file里写了上面的bool式子,运算shell里没有显示呢,既没有True也咩有False
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

6#
发表于 2015-5-13 11:22:01 |只看该作者
fix 发表于 2015-5-13 09:18
在new file里写了上面的bool式子,运算shell里没有显示呢,既没有True也咩有False ...

new file里的式子不会直接在控制台输出结果
你要把结果print出来
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

7#
发表于 2015-5-13 21:56:48 |只看该作者
crossin先生 发表于 2015-5-13 11:22
new file里的式子不会直接在控制台输出结果
你要把结果print出来

对哦,常用int,float,str,忘了bool也要print才能输出
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

8#
发表于 2015-5-14 00:03:06 |只看该作者
str(123)可以表示字符串,但不能直接输出字符串
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

9#
发表于 2015-5-14 21:25:40 |只看该作者
fix 发表于 2015-5-14 00:03
str(123)可以表示字符串,但不能直接输出字符串

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

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

10#
发表于 2015-5-14 23:05:57 |只看该作者
crossin先生 发表于 2015-5-14 21:25
输出要print

是写的print str(123)但是只输出123,但是print str(123)==‘123’输出True.
回复

使用道具 举报

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

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

GMT+8, 2024-6-26 16:57 , Processed in 0.020055 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部