python学习笔记(一)之数据类型

10,0xff00   # int 整数

5L           # long 长整数

1.3,1.2e-5   # float 浮点数

True/False  # 布尔值 (注意,python对大小写敏感,是True而不是true,是False而不是false)

'Hello!'     # 字符串

None         # 空值

以上是最常用的数据类型,对于字符串来说,双引号与单引号等价。(python中还有三引号,通常用于块注释)


需要注意的是,python中的基本数据类型的几大特点:

1.变量不需要声明,可以直接输入:

>>>a=10

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

>>>print a
>>>print type(a)
那么会有如下输出:
10
<type 'int'>
即,可以用type()来查询变量的类型,这和其他语言大同小异。

2.python的强制类型转换:

>>>a=0.3
>>>type(a)
那么输出则是<type 'float'>
>>>b=int(a)
>>>print b
则屏幕打印0,即是b=0。


3.常量无名:

在python中,常量是无名的,而不像java中可以定义final var=1以及c++中const var=1,常量就是一个单独的存在,下面进行示范。

java中常量如此定义:

>>> final var=1
  File "<stdin>", line 1
    final var=1
            ^
SyntaxError: invalid syntax
c++中:
>>> const var=1
  File "<stdin>", line 1
    const var=1
            ^
SyntaxError: invalid syntax
可见他们在python中都会报错。而python中:
>>> 1
1
>>> 'a'
'a'

接下来分别讲解几个数据类型的运算、操作等内容。

1.整数、长整数和浮点数:

数型的计算和其它高级语言类似(毕竟这都是数学计算),无非加减乘除、左移右移等等。而对于更高级的Numpy的使用,将不在此介绍。


2.布尔值:

布尔值可以进行andornot运算,这属于数学运算中逻辑运算的范畴,也不再详细介绍。


3.字符串:

字符串在如今运用越来越广泛,而字符串的各种操作还是要求熟记于心,这是最好的。

首先,字符串有转义字符的存在,如下:

>>> print 'I\'m \"OK\"!'
I'm "OK"!
>>> print 'I\'m learning\nPython.'
I'm learning
Python.
>>> print '\\\n\\'
\
\
>>> print '\\\t\\'
\       \
与之对立,如果不转移字符串中的内容,则用r‘ ’表示‘ ’内部的字符串不转义:
>>> print r'\\\t\\'
\\\t\\
特殊的,对于python对于中文的支持还不是很完善,尤其在字符串中,需要有u'中文'来进行中文字符串赋值。(python3.x对于中文的支持好了很多)

python字符串自然也有一些重要的函数,可以用dir()查询,重点看一下一些常用的函数:

a.python提供了ord()和chr()函数,可以把字母和对应的ASCII码数值相互转换:

>>> ord('A')
65
>>> chr(65)
'A'
b.len()函数可以返回字符串长度:
>>> len('abc')
3
>>> len(u'abc')
3
>>> len(u'中文')
2
c.count()函数返回字符串内部部分子串,第二个和第三个参数分别表示从哪儿到哪儿(字符串中的元素也可以用数组的方式来显示):
>>> a='123456789'
>>> a.count('123',0,8)
1
>>> a.count('1223',0,8)
0
>>> a[2]
'3'
还可以提取其中的字串:
>>> a[2:6]
'3456'
也可以进行欺骗操作,即进行负的索引:
>>> a[:-3]
'123456'
所以说python对于字符串有着很强大的支持。

d.join()函数:

>>> ','.join(a)
'1,2,3,4,5,6,7,8,9'
>>> '_'.join(a)
'1_2_3_4_5_6_7_8_9'
这种操作用java怎么实现呢?

e.eval()将字符串转换为表达式:

>>> a='1+1'
>>> eval(a)
2
>>> eval('"1"+"1"')
'11'
>>> b='"1"+"2"'
>>> type(eval(b))
<type 'str'>
>>> type(eval(a))
<type 'int'>     //由此可见,双重字符串转换后还是str而不是表达式的值

最后回顾一下字符串的格式化。在python中,格式化的方式和c语言一致,用%实现,例如:

>>> 'Hello,%s' % 'world'
'Hello,world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

常见的占位符有:

%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数

>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'

%s可以把任何数据类型转换为字符串:

>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'

转义%%来表示一个%

>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'

参考资料:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值