python 基础 1.5 python 数据类型(一)--整型 浮点型 布尔型及字符串和常用方法

一.python 数据类型:数值,字符串,列表,元组,字典。以下操作是在linux 下 ipython中进行
1.数值
1》123  与  “123”的区别
答:123为数值,“123”在python中看做字符串
 
2》数值类型
整型,长整型,浮点型,复数型
 
整型的范围:-2147483648 (-2**31)----4294967296(2**32)
 
长整型:当一个数值大于整整的范围时,他就会变成长整型,如下:
In [3]: a = 19999999999999999999999
In [5]: a   //打印a的数值
Out[5]: 19999999999999999999999L
In [4]: type(a)  //查看a的类型,为长整型。
Out[4]: long
 
浮点型:浮点型就是带小数点的,科学计数法也属于浮点型。
In [6]: a = 0.345
 
In [7]: type(a)
Out[7]: float
 
In [8]: 3e+7
Out[8]: 30000000.0
 
除数与被除数只要有一个是浮点型,那结果就为浮点型。
In [10]: 3 / 2
Out[10]: 1
In [11]: type(3 / 2)
Out[11]: int
 
In [12]: 3 / 2.0
Out[12]: 1.5
 
In [13]: type(3 / 2.0)
Out[13]: float
 
复数型--complex:在后面加个“j”,就表示复数型。如:-3.14j     8.32e-32j
In [14]: a = 35j
 
In [15]: type(a)
Out[15]: complex
 
2.字符串--string
1》定义字符串的三种方法:单引号,双引号,三引号
-str = ‘this  is  a  string’    //单引号与双引号在python下没有任何区别
-str = “this is  a  string”
-str = ‘’‘this  is  a  string’‘’  //三重引号,除了能定义字符串外,还可以用作注释
 
In [22]: a = '''helll
   ....: world'''   ///三个引号,可以自行添加换行符
In [24]: print(a)
helll
world
 
2>通过索引了,来取字符。叫切片
In [25]: a = 'abcde'
 
In [27]: a[0]  //第一个索引为0
Out[27]: 'a'
 
In [26]: a[1]
Out[26]: 'b'
 
In [28]: a[2]
Out[28]: 'c'
 
In [29]: a[-1]  //负1表示最后一个索引
Out[29]: 'e'
 
3>序列和切片。
序列 abcde   从前往后分别对应 0(a)1(b)2(c)3(d)4(e) ,从后往前对应-1(e) -2(d) -3(c) -4(b) -5(a)
 
从左往右,取字符串中连续的几个字母:
In [31]: a = 'abcdef'
 
In [32]: a[0:2]   //取ab两个字符,索引为2的不包括在内,所以c没显示出来。
Out[32]: 'ab'
 
In [33]: a[:2]   //还可以省略第一个索引。
Out[33]: 'ab'
 
In [34]: a[1:]  //从第一个开始取,取到最后。可以把最后一个索引省略。
Out[34]: 'bcdef'
 
In [35]: a[:]  //第一个索引省略,第二个索引省略,表示取全部。
Out[35]: 'abcdef'
 
从右往左取
In [36]: a[:-1]   //从第一个索引开始取,但不包括最后一个索引。也就是不取f
Out[36]: 'abcde'
 
In [37]: a[1:-1]   //从第一个索引开始取,取到最后,但不包括最后一个f字母
Out[37]: 'bcde'
 
In [39]: a[::1]    //从第一个开始取,取到最后,步长为1
Out[39]: 'abcdef'
 
In [40]: a[::2]  //从第一个开始取,取到最后,步长为2
Out[40]: 'ace'
 
从左往右取出b和c
In [45]: a
Out[45]: 'abcde'
 
In [46]: a[-4:-2]   //最后的-2是不包括在内的,默认从左到右的顺序,所以先写-4,在写-2
Out[46]: 'bc'
 
从右到左取出d和c
In [48]: a
Out[48]: 'abcde'
 
In [49]: a[-2:-4:-1]    // 负1 表示从右往左取,
Out[49]: 'dc'
 
In [7]: a = 'abcdef'   //取最后两位
In [8]: a[-2:]
Out[8]: 'ef'
 
 
二, 函数。以下操作是在pycharm中进行。
1> round
# 默认保留1为小数
#以四舍五入的方式计算
g = 3.5
h = 2.45
print('g',round(g))
print('h',round(h))
 
>>>  ('g', 4.0)
            ('h', 2.0)
 
 
2>round(float浮点型,精度)
#先进行四舍五入的运算,小数点最后一位必须为偶数
代码如下:
a = 3.046  正常的浮点型是四舍五入。但是碰到.5的情况,要求精度的前一位是偶数则四舍五入,如果要求精度的后一位是奇数则舍弃。
 
b = 2.143
c = 3.447
d = 3.567  .5情况,要求的精度是2,精度的前一位是7,为奇数舍弃。所以取值为d=3.56
e = 2.555  但是碰到.5的情况,如果要取舍的位数前的小数是奇数,则直接舍弃,如果偶数这向上取舍
 
f = 1.545
print('a',round(a,2))
print('b',round(b,2))
print('c',round(c,2))
print('d',round(d,2))
print('e',round(e,2))
print('f',round(f,2))
 
>>>  ('a', 3.05)
            ('b', 2.14)
                ('c', 3.45)
             ('d', 3.57)
             ('e', 2.56)
             ('f', 1.54)
 
 
三. 字符串常用方法。pycharm中操作
1》示例:
#/usr/bin/python
#coding=utf-8
#@Time   :2017/10/11 16:20
#@Auther :liuzhenchuan
#@File   :demon-str.py
s = 'hello'
print(dir(s))
print(s[0],s[1],s[2])
 
运行如下::
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
('h', 'e', 'l')
 
 
2》常用字符串方法
#find    查找
#replace    替换
#split     以什么为分割符
#join
#strip
#format
 
-----find 解析
rfind:从右边开始找
lfind:从左边开始找
s1 = 'dingeigliuzhenchuan08jo'
print(s1.find('liu'))
print(s1.find('abdliu'))
运行如下:
7   
-1   //找不到就会返回负1
 
 
----replace 解析。替换
s1 = 'dingeigliuzhenchuan08jo'
print(s1.replace('liu','hello'))
 
运行如下:
dingeighellozhenchuan08jo
 
 
 
---split解析,返回为列表。以什么为分割符
s2 = 'ttion:eottn:aacng'
print(s2.split(':'))
运行如下:
['ttion', 'eottn', 'aacng']
 
 
----join()   连接字符串数组。将字符串,元组,列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
----os.path.join()   将多个路径组合后返回
 
s3 = '12:34:56'
print('word'.join(s3))
print('word'.join(s3.split(':')))
运行如下:
1word2word3word4word5word6
12word34word56
 
 
---strip() 方法用于移除字符串头尾指定的字符(默认为空格)
strip() 方法语法:
   str.strip([chars])
   chars:移除指定的字符串
rstrip():从右边开始去掉
lstrip():从左边开始去掉
 
#/usr/bin/python
#coding=utf-8
#@Time   :2017/10/12 21:12
#@Auther :liuzhenchuan
#@File   :字符串.py
s1 = '  11ab  11cd  11  '
print(s1)
print(s1.rstrip())
print(s1.lstrip())
print s1.strip('  11')  //移除两个空格和两个11的字符
运行如下:
  11ab  11cd  11    //打印s1字符串
  11ab  11cd  11    //从右边开始去掉空格,左边留有空格
11ab  11cd  11      //从左边开始去掉空格,右边留有空格
ab  11cd
 
 
---format()   字符串格式化
%s:代表的是字符串
%d:代表的是整数‘
%f:代表的是浮点型
 
#format  格式化字符串
name = 'liuzhenchuan'
print 'hello '+name
print 'hello %s' % name
print('hello {0}').format(name)
 
运行如下:
hello liuzhenchuan
hello liuzhenchuan
hello liuzhenchuan
 
 
多个变量的情况
#format  格式化字符串
name = 'liuzhenchuan'
age = 20
print('hello {0},my age is: {1}'.format(name,age))
print '{name}:{age}'.format(name='ajing',age='20')
 
运行如下:
hello liuzhenchuan,my age is: 20
ajing:20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/lzcys8868/p/7697752.html