Python基础02 基本数据类型



 

简单的数据类型以及赋值

 

变量不需要声明

Python的变量不需要声明,你可以直接输入:

>>>a = 10

那么你的内存里就有了一个变量a, 它的值是10,它的类型是integer (整数)。 在此之前你不需要做什么特别的声明,而数据类型是Python自动决定的。

>>>print(a)

>>>print(type(a))

那么会有如下输出:

10
<class 'int'>

 

这里,我们学到一个内置函数type(), 用以查询变量的类型。

 

回收变量名

如果你想让a存储不同的数据,你不需要删除原有变量就可以直接赋值。

>>>a = 1.3

>>>print(a,type(a))

会有如下输出

 

1.3 <class 'float'>

 

我们看到print的另一个用法,也就是print后跟多个输出,以逗号分隔。

 

基本数据类型

a=10         # int 整数

a=1.3        # float 浮点数

a=True       # 真值 (True/False)

a='Hello!'   # 字符串。字符串也可以用双引号。

以上是最常用的数据类型。此外还有分数,字符,复数等其他类型,有兴趣的可以学习一下。

 

总结

变量不需要声明,不需要删除,可以直接回收适用。

type(): 查询数据类型

整数,浮点数,真值,字符串

如果你喜欢这篇文章,欢迎推荐

技术推动进步,分享促进社区。

标签: Python
18
0
« 上一篇:Python基础01 Hello World!
» 下一篇:Python基础03 序列


posted @ 2012-05-28 20:05 Vamei 阅读(115991) 评论(27) 编辑 收藏





#1楼 2012-11-22 19:58 Raining Days  


我是初学者,毕竟要毕业了多学一点十一点,之前一直是c/c++的编程,也有参加过相应的比赛。这阵子不是特别忙,就想学点什么。之后再在博主这里学学linux。
我是刚来看的,这么说的话,在python里面可以随心所欲的定义数据,而且它会自动分配一个合适的数据类型给你,一个变量,可以是多种类型了吧。





#2楼 2012-11-22 20:00 Raining Days  


我刚才有试过a=-1/5,可是输出来的a=-1,而且我试过a=-2i+3,想要输出发现有错误,求博主解释一下。





#3楼[楼主] 2012-11-22 20:26 Vamei  


@
Raining Days
第一个问题:
因为两个参与运算的数字都是整数,所以它默认结果为整数。
你可以尝试 a = -1.0/5 或者 a = -1/5.0。由于参与运算中有一个是浮点数,所以整数会转换成更高精度的浮点数,再进行运算。
你也可以尝试 a = -float(1)/5,原理一样。

第二个问题,虚部是j,不是i
>>> a = 3 - 2j
>>> b = 2 + 1j
>>> a + b
(5-1j)





#4楼[楼主] 2012-11-22 20:27 Vamei  


@
Raining Days
关于动态类型,你可以查看后面的教程中的介绍。





#5楼 2012-12-06 00:28 fz420  


你好, 博主,

python 变量不需要声明

为什么下载这段代码中的 a 要先定义呢??

<img src="//i.minus.com/iIM0SEvp3D4jg.jpg" alt="" border="0" "="">






#6楼[楼主] 2012-12-06 10:04 Vamei  


@
fz420
是不需要声明类型。可你用在if判断里面,这个a总要是个什么东西吧,不然如何拿一个“虚无”的东西去做判断呢?





#7楼 2012-12-06 13:18 fz420  


@
Vamei
引用@fz420
是不需要声明类型。可你用在if判断里面,这个a总要是个什么东西吧,不然如何拿一个“虚无”的东西去做判断呢?


我觉得 if 与 for 的情况是相同的, 但是 for 可以执行不报错

1
2
3
4
5
6
7
#!/bin/python
 
 
#为什么这里a不用声明
 
for a in range(10):
       print a





#8楼[楼主] 2012-12-06 13:34 Vamei  


@
fz420
当然不一样了。
for是把iterator生成的值赋予给a,然后再使用a。
if没有赋值这一步





#9楼 2013-07-02 16:23 boke_hh  


@
Vamei
@Raining Days的第一个问题应该是3.0版本以下中出现的,3.0以上的版本中得到的值为-0.2。不需要考虑运算符前后元素的类型





#10楼[楼主] 2013-07-02 19:48 Vamei  


@
boke_hh
我之前还没有考虑过版本的问题,不错!





#11楼 2013-07-03 18:35 boke_hh  


@
Vamei
博主,那个import怎么用啊,还有一些内置函数,查了下资料,还是不太明白





#12楼 2013-07-04 10:29 jinghuali  


@
boke_hh
import就是导入你需要的模块





#13楼 2014-03-14 21:40 山之巅  


我有两个问题,一个是上一篇的问题,一起问了吧
1.我知道Linux的目录结构有树的概念,可以一直相对路径/找到文件,但是我用的windows,例如如果我安装在C盘,但是我在F盘建立了一个存放脚本的文件目录python script,建立了一个hello.py,我怎样通过命令执行这个脚本文件hello.py
2.9楼的说过得到的值是-0.2,这说明python默认把-1/2的-1当做float类型了,但是如果我现在想获得c语言中的-1/2的值,应该是0,我改成(int)-1/2或者-(int)1/2为什么都会报错,另外怎么实现像c语言一样





#14楼[楼主] 2014-03-14 22:52 Vamei  


@
山之巅
第一个问题,可以加上绝对路径执行。
第二个问题,你试试int(1)/int(2)?





#15楼 2014-03-17 20:25 山之巅  


1.我上网查了,可以通过cmd中f:\python script>C:\Python33\python.exe hello.py这样才能执行,但是这样必须切换到脚本所在的目录,如果我想直接在python shell中执行呢?像这样>>> f:\python script\hello.py,就报错了SyntaxError: invalid syntax(:会变成红色),怎样才能在shell中直接执行?
2.print(1/2);和print(int(1)/int(2));的答案都是0.5,看来是不行了?





#16楼[楼主] 2014-03-17 20:29 Vamei  


@
山之巅
1. 还真不知道能不能在Python内部运行Python脚本。应该有一些特殊方法可以做到,比如利用os包里的功能,运行外部命令?
2. 似乎彻底改掉了。我还在用2.7,所以无法复制你说的效果。





#17楼 2014-03-27 14:25 Triangle23  


关于进制表示能否讲一下,如2010=256,210=1024,谢谢





#18楼 2014-08-08 17:43 东篱雪  


@
Triangle23
1、2010中的 010表示的是八进制,实际就是 010(八进制)= 18^1 + 08^0 = 8(十进制);
2、2
10中的10就是十进制当中的10;
3、所以:

2010 = 2^8 = 256;
2
10 = 2^10 = 1024;

4、关于进制的表示:

十进制:生活中最常用的;0,1,2...
十二进制:钟表的时针;
六十进制:钟表的分针和秒针;
二进制:101010101011(零和一表示),互联网最底层的数据表示;

八进制:010,076,... 一般前面无缘无故带个零的,你就要考虑是不是八进制 了,如果0后面的最大数没有超过8,那极有可能是八进制表示的数;

十六进制:0x091abcdef ,一般前面带有0x的,就是十六进制表示的数,0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 总共16个字符表示十六进制的数,一般都是计算十六进制转十进制;计算时,a表示10,b表示11,...,f表示15;IPV6就是用十六进制表示的。





#19楼 2014-09-21 11:27 vagabond1132  


@
Raining Days

应该是 -1/5.0
因为 默认为int 而不是float输出





#20楼 2014-09-25 20:18 小驰子  


15楼兄弟说的第一个问题,把Python安装路径放到环境变量里应该就可以和在shell里一样直接输入.py文件





#21楼 2015-01-12 21:51 oblivion  


b type int
为什么b=1/5 输出0
而 b=-1/5 输出-1





#22楼 2015-05-30 17:01 迷途ing  


b = 1/5 输出0 都是int型且是正数
b = -1/5 输出 -1 python带有负数除法是按距离来做除法运算也就-1 到 5的距离是6 6/5 = 1 然后在加上符号-
这一点可验证
1
2
3
4
5
print -1/5
print -10/5
print 10/-5
print 15/-5
print -16/5

所以在取模运算时 商的结果会影响取模结果,c/c++ java 是求余





#23楼 2015-10-05 10:32 苏生不惑  


@
oblivion
整数相除返回的是商





#25楼 2016-06-11 16:57 两只蜗牛  


@
迷途ing
博主,我感觉 -1 到 5的距离是5 5/5 = 1 然后在加上符号-
0 到 5的距离是4 4/5 = 0 ,不知道我说的对不对,刚看你博客学python





#26楼 2016-10-08 16:33 dao_lee  


print(type(a))时,python2.x显示<type 'int'>,python3.x显示<class 'int'>。





#27楼 2018-06-08 10:28 suyuloying  


>>> a = 3 - 2j
>>> b = 2 + 1j
>>> a + b
(5-1j)

楼主 您好 请问下怎么查到复数是j而不是数学表达式中的i




posted @ 2018-07-26 23:45  韦大仙  阅读(639)  评论(0)    收藏  举报