Python —— 基本数据类型

Python —— 基本数据类型

int

可计算int类对象的位长度:  对象.bit_length()

>>> a=123
>>> a.bit_length()
7

float

python中的float型,等同于c语言中的double类型。

创建float值得两种方式

  1、直接赋予变量。如果该数值没有小数,需补充后缀".0",否则解释器认为是int型。

  2、使用构造器float()创建float实例。如果没有输入参数,创建的float实例为"0.0"。

>>> float()
0.0
>>> float(22)
22.0
>>> float(22.22)
22.22
>>> float("22.22")
22.22
>>> float("22.22a") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: could not convert string to float: '22.22a'

 

float类型的取整问题

包括:向下取整、向上取整、四舍五入,分别取整数部分和小数部分

# 向下取整
>>> int(22.22)
22

# 向上取整
>>> import math
>>> math.ceil(22.22)
23

# 四舍五入
>>> round(22.22)
22
>>> round(22.72)
23
>>> round(22.22, 1)
22.2
>>> round(22.77, 1)
22.8

Python —— 模块 —— math

 

float获取整数/小数部分

>>> divmod(22.22,1)  
(22.0, 0.21999999999999886)

>>> import math
>>> math.modf(22.22)
(0.21999999999999886, 22.0)

float类型的格式化问题 %f

Python —— %s、%d、%f + format()

 

bool

      str串中,空字符串""代表False

    int类中,数字0代表False

str

1)str类提供的功能

变大/小写/首字母大写 - upper()、lower()、capitalize()

>>> name="clARe"
>>> name.upper()
'CLARE'
>>> name.lower()
'clare'
>>>
>>> name.capitalize()  # 首字母变大写,其余字母变小写
'Clare'

去除前后空格 / 前空格 / 后空格 - strip()、lstrip()、rstrip()

>>> name="  Clare  "
>>> name.strip()
'Clare'
>>> name.lstrip()
'Clare  '
>>> name.rstrip()
'  Clare'

替换 replace()

>>> msg = "Life is short,you need python"
>>> msg.replace("python", "Python")
'Life is short,you need Python'
>>> msg
'Life is short,you need python'  # 替换并不改变原有字符串,获取替换后的字符串需赋值给新的变量

分割 - split()、rsplit()

>>> msg = "1+2+3+4+5"

# 当不传入参数时,即对字符串以所有"+"为分割进行切片,获得一个列表
>>> msg.split("+") 
['1', '2', '3', '4', '5']

# 传入参数为2时,对字符串以前两个"+"进行切片,获得一个列表
>>> msg.split("+",2) 
['1', '2', '3+4+5']

# 可定义变量接收切片后的元素,定义的变量个数必须与切片后的列表内的元素个数相同
>>> a , b = msg.split( "+" , 1 ) >>> a '1' >>> b '2+3+4+5' # rsplit(),注:无lsplit()方法 >>> msg.rsplit('+', 2) ['1+2+3', '4', '5']

判断当前字符串中是否都为数字 - isdecimal()

msg = "nicnjsm2234848sniwiwi"
num = 0
for i in msg:
  if i.isdecimal():     #.isdecimal()可判断是否为整数,返回True或False 
    num += 1      # 是整数,计数+1
  print (num) 

2)公共功能

计算长度

>>> msg="python"
>>> len(msg)
6

通过“索引”/“下标”查找元素

索引由0开始,也可输入索引起始值:索引结束值:步长(如1:6:2,表示取索引值为1到索引值为5,步长为2的数)

>>> msg="python"
>>> msg[2]
't'
>>> msg[:4]
'pyth'
>>> msg[1:4:2]
'yh'

for 循环

str = "python"
for i in str:
  print (i)

 

int - bool - str 的转换

# int-str
>>> msg="1234"
>>> int(msg)
1234
>>> num=1234
>>> str(num)
'1234'

# 报错 >>> msg="123a" >>> int(msg) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '123a'

 

 

int类、bool类、str类可进行转换

1   msg = "1234"
2   num = int(msg)    # 将字符串"1234"转换为数字1234
3 
4   num = 1234
5   msg = str(num)    # 将数字1234转换为字符串"1234"

非0数、非空字符串转换为bool类型为True,数字0、空字符串转换为bool类型为Fase

list

    list类的功能修改自身值

  1)list类提供的功能

    1、在列表尾部追加一个值  list.append()

    2、在指定位置插入一个值  list.insert(索引号,值)

    3、将列表中全部元素反转  list.reverse()

  2)公共功能

    1、计算列表长度  length = len(list)

    2、索引      list[0]  list[1:6:2]

    3、可通过for循环打印列表中的元素

    4、替换      list[1] = "a"

    5、删除      del list[2]

    6、列表中的元素可以是数字、字符串、列表、以及元组、字典等。。。  list = [ 11, "Calre" , [1,2] , (1,2) , {"k1":"v1"} ] 

 

排序:

sort与sorted()

list.sort()方法会按照升序将列表重新排列,不会保留原列表。

而sorted()会返回副本,原始输入不变。

>>> a=[9,8,7,6,5,4,3,2,1]
>>> a.sort()
>>> a
>>> [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>
>>> b=[9,8,7,6,5,4,3,2,1]
>>> c=sorted(b)
>>> b
[9,8,7,6,5,4,3,2,1]
>>> c
[1, 2, 3, 4, 5, 6, 7, 8, 9]

 

tuple

  1)tuple类提供的功能

    无

  2)公共功能

    1、计算元组长度  length = len(tuple)

    2、索引      tuple[0]  tuple[1:6:2]

    3、可通过for循环打印元组中的元素

    4、元组中的元素可以是数字、字符串、列表、以及元组、字典等。。。  tuple = ( 11, "Calre" , [1,2] , (1,2) , {"k1":"v1"} )

    5、对于元组中的元素来说,如果元素是可变的列表、字符串等值,则该列表/字符串中的值可变

1   tuple = ( 11, "Calre" , [1,2] , (1,2) , {"k1":"v1"} )
2   tuple[1].replace("l","L")      # 将元组中索引为1的值:字符串中的“l”修改为“L”
3   tuple[2][1] = 3                # 将元组中索引为2的值:列表中索引为1的值修改为3

 

dic

    dic类中一个键值对为一个元素,键值对由键key和值value构成,值可以是数字、字符串、列表、以及元组、字典等。。。

    字典是无序的。

  1)dict类提供的功能

    1、可通过键获取相应的值  value = dict.get("k1")

  2)公共功能

    1、获取字典长度,即获取共有多少个键值对。  num = len(dict)

    2、通过索引获取值。             value = dict[ "k1"]

      注:因字典是无序的,不能通过索引值来获取值,只能通过键来获取值

    3、修改键对应的值:  

1   dict = { "k1":"v1" , "k2":"v2"}
2   dict["k1"] = 3    
3   print(dict)

      注:如输入的键名字典中存在,则修改键对应的值;若字典中不存在,则在字典中添加一个键值对

    4、删除键值对                del dict["k1‘’]

    5、for循环打印字典

1   dict = { "k1":"v1" , "k2":"v2" }
2   for i in dict:    # 获取dict中的所有键,同for i in dict.keys():
3       print(i)
4 
5   for i in dict.values();  # 获取dict中的所有值
6       print(i)

set

集合创建

# 空集合
s = set()

# 非空集合
s = set((1,2,3))
s = {1,2,3}
s = set('123455') --> s={'2', '3', '1', '4', '5'} 

# 集合推导式
s = {i for i in [1,2,3] if i != 0 }

集合元素顺序

集合是无序的,打印顺序:

a = set((8, 2, 3, 4, 5))
b = set((-1, 2, 3, 4, 5))

# a:{2, 3, 4, 5, 8}
# b:{2, 3, 4, 5, -1}

 

集合间运算

# 去重
a = {1, 2, 3, 4, 5, 5, 5, 5}
print(a)   # {1, 2, 3, 4, 5}

# 是否在集合内
2 in a    # True
'2' in a    # False

 

a = set((1, 2, 3, 4, 5))
b = set((1, 2, 3, 4, 6))

print(a - b)    # 集合a相对于集合b的差集,即集合a包含集合b不包含的元素。{5}
print(a | b)    # 集合a集合b的并集:{1, 2, 3, 4, 5, 6}
print(a & b)    # 集合a集合b的交集:{1, 2, 3, 4}
print(a ^ b)    # 不同时包含于集合a集合b的元素:{5, 6}

 

集合基本操作

添加 add / update

# 添加元素
s = set()
s.add(1)

# 批量添加  s.update(x): x参数可以是列表,元组,字典等,支持多个逗号分隔
x = [2, 3]
y = (4, 5)
z = {6: 'a', 7: 'b'}
s.update(x)
s.update(y)
s.update(z)
s.update(z.items())
s.update(z.values())
s.update(['A', 'B'], ['C', 'D'])
print(s)  # {1, 2, 3, 4, 5, 6, 7, 'B', 'a', (7, 'b'), 'b', 'C', 'A', 'D', (6, 'a')}

移除 remove / discard

 

1、差集

  .difference()

1 name = { "Clare","Bob","Amy" }
2 stud = { "Amy","Alex" }
3 data = name.difference(stud)      # 求name中存在,stud中不存在的数据
4 print(data)               #   运行结果:{'Clare','Bob'}
5 data = stud.difference(name)     # 求stud中存在,name中不存在的数据
6 print(data)               #   运行结果:{'Alex'}

  .diference_update()

1 name = { "Clare","Bob","Amy" }
2 stud = { "Amy","Alex" }
3 name.difference_update(stud)      # 求name中存在,stud中不存在的数据,并赋值给name
4 print(name)               #   运行结果:{'Clare','Bob'}
# 前后独立 5 # stud.difference_update(name)    # 求stud中存在,name中不存在的数据,并赋值给stud 6 # print(stud)              #  运行结果:{'Alex'}

 

  2、对称差集

1 name = { "Clare","Bob","Amy" }
2 stud = { "Amy","Alex" }
3 val = name.symmetric_difference(stud)  # name中存在stud中不存在的数据 和 stud中存在name中不存在的数据的集合,并赋值给val
4 print(val)                  # 运行结果:{'Clare','Bob','Alex'}
5 
6 name.symmetric_difference_update(stud) # 赋值给name
7 print(name)                 # 运行结果:{'Clare','Bob','Alex'}

 

  3、交集、

  

  4、并集

 

  5、在集合中删除指定值

1 name = { "Clare","Bob","Amy" }
2 name.discard("Clare")
3 print(name)
posted @ 2017-08-20 17:13  乖巧Clare  阅读(205)  评论(0编辑  收藏  举报