python语法之基础数据类型

一、整型

1、用途:一般用于定义整数,如:年龄,身份证号,qq号码等

2、定义方式:age = 18   ---->age = int( 18 )

3、内置常用方法 (用于数学计算与比较运算)

3.1 进制的转换

3.1.1  其他进制转换10进制

二------->十: (0,1110   1*(2**2)+ 1*(2**1) +0*(2**0)=4+2+0=6

         print(int ( ' 110 ' ,2 ) )

 

八------->十: (0-7123   1*(8**2)+ 2*(8**1) +3*(8**0)=64+16+3=83

         print(int ( ' 123 ' ,8 ) )

 

十六------->十: (0-9,a-f )

321   3*(16**2)+ 2*(16**1) +1*(16**0)=768+32+1=801

         print(int ( ' 321 ' ,16 ) )

 

3.1.2  10进制转换其他进制(0-9)

十------->二:  print(bin (108 ) ) ------->0b1101100

十------->八:   print(oct ( 83 ) )------->O0123

十------->十六:   print(hex ( 1000 ) )------->Ox3e8

4、总结

1、(有索引的类型都是有序的)

2、不可变

3、存一个值

 

二、浮点型

1、用途:用于记录小数,身高,体重,薪资等

2、定义方式:height = 1.0 ----> height = float(1.0)

3、内置常用方法

 s1 = '1.0'
 f1 = float(s1)
 print(f1)       # 1.0
 print(type(f1))   # float
 a1 = int(f1)
 print(a1)    # 1

4、总结

1、无序

2、不可变类型

2、只能存一个值

 

三、字符串

1、用途:用于存储一些描述性信息,名字等

2、定义方式

 第一种:
s1 = '大象'

第二种:
 s2 = "大象2"

 第三种:

s3 = '''大象3'''

s4 = """大象4"""

print(s1,s2,s3,s4)

# 以上三种方式没有任何区别,但是不能混用

s5 = '你今天"吃饭"了吗'

# 补充:字符串前面加一个小写的r,代表转义

3、内置常用方法

  1 1、索引取值(正向取、反向取),只能取不能存
  2 
  3 s1 = 'hello world'
  4 
  5 print(s1[4])  # 正向取
  6 print(s1[-7]) # 反向取
  7 
  8 2、索引切片  : 截取字符串中的一小段字符串
  9 
 10  print(s1[2:5])
 11  print(s1[4:])
 12  print(s1[:5])
 13  print(s1[0:-2:2])
 14  print(s1[::-1])
 15 
 16 3、成员运算:in  not in
 17 
 18 print("o" not in s1)
 19 
 20 4、strip :去除字符串左右两边的空格,中间不算
 21  input无论接受的是什么类型,一定返回的是字符串
 22 
 23  name = input(">>:").strip()
 24  print(len(name))
 25 
 26  a1 = '$$$$sean$$$'
 27  print(a1.strip("$"))
 28 
 29 5、split : 切分: 对字符串进行切分,可以指定切分的分隔符,返回是一个列表
 30 
 31  a1 = 'sean 18 male'
 32 
 33 print(a1.split())
 34 
 35 6、len() :获取当前数据中的元素的个数
 36 
 37 a1 = 'hello'
 38 
 39 print(a1)
 40 
 41 #for循环
 42 a1 = 'hello'
 43 for i in a1:
 44      print(i)
 45 
 46 #需要掌握知识点:
 47 strip,rstrip,lstrip
 48 
 49 inp = input(">>:").lstrip("*")
 50 print(inp)
 51 print(len(inp))
 52 
 53 
 54 # lower\upper
 55 s1 = 'Hello world'
 56 print(s1.upper())
 57 print(s1.lower())
 58 
 59 
 60 # startswith\endswith  : 判断当前字符串是否以。。。开头,或者以。。结尾,返回的一定是布尔值
 61 print(s1.startswith("He"))
 62 
 63 print(s1.endswith('ld'))
 64 
 65 .format()
 66 你的名字是:sean,你的年龄是:18
 67 
 68 name = 'sean'
 69 age = 19
 70 
 71 print("你的名字是:",name,"你的年龄是,",age)
 72 
 73 print("你的名字是:{},你的年龄是:{}".format(name,age))
 74 
 75 print("你的名字是:{1},你的年龄是:{0}".format(name,age))
 76 
 77 print("你的名字是:{name},你的年龄是:{age},{gender}".format(age=age,name=name,gender='male'))
 78 
 79 # f-string:
 80 # 通过大括号接收变量,在字符串前面一定要加一个小写f,,,,在python3.6以后才有
 81 print(f"你的名字是:{name},你的年龄是:{age}")
 82 
 83 # split\rsplit
 84 s1 = "name,age,gender"
 85 print(s1.split(",",1))  # 可以指定切分的次数
 86 
 87 # join : 将(列表)中每个元素按照前面字符串中的分隔符进行拼接
 88 l1 = ['sean','18','male']
 89 print("|".join(l1))
 90 
 91 # replace:将字符串中的元素进行替换,参数,先老值,再新值
 92 s1 = 'sean,18'
 93 print(s1.replace("sean",'大象'))
 94 
 95 
 96 # isdigit() : 判断当前字符串中的数据,是否是一个数字,返回布尔值
 97 
 98 score = input("please input your score:")
 99 if score.isdigit():
100     score = int(score)
101      if score >= 90:
102          print('优秀')
103 else:
104      print("你tmd能不能好好输")

4、总结

1、有序

2、不可变类型

2、只能存一个值

 

四、列表

1、用途:用于存一个或者多个不同类型的值

2、定义方式:通过花括号存值,每个值之间通过逗号进行分隔

3、内置常用方法

# 1、索引取值(正反都可以),不仅可以取还可以存
l1 = [1, 2, 3, 4, 5]
print(l1[2])  # 3
# l1[2] = 222
# print(l1)  # [1, 2, 222, 4, 5]

#2、索引切片 print(l1[1:4]) # [2, 3, 4]

#3、append() 追加 只能添加到列表的最后一位,一次性只能添加一个值 l1.append(1000) print(l1) l1.append([9, 8]) print(l1)
#4、insert() 插入值,通过索引指定插入的位置 l1.insert(3, 888) print(l1)
#5、extend() 将插入的可迭代对象分别插入 l1.extend([33, 44, 55]) print(l1)
#6、reomve() 指定值删除,比较彻底,()中直接放值 l1.remove(1) print(l1) l1.remove([9, 8]) print(l1)
#7、pop() 不传值,默认从最后开始删,指定索引删值,pop是有返回值的 val = l1.pop() print(val)

 

4、队列:先进先出

      堆栈:先进后出

#队列

# l = []
# l.append(1)
# l.append(2)
# l.append(3)
# print(l)
# #[1, 2, 3]
# l.pop(0)
# print(l)
# #[2, 3]
# l.pop(0)
# print(l)
# #[3]
# l.pop(0)
# print(l)
# #[]
#堆栈

l = []
l.append(1)
l.append(2)
l.append(3)
print(l)
#[1, 2, 3]
l.pop()
print(l)
#[1, 2]
l.pop()
print(l)
#[1]
l.pop()
print(l)
#[]

 

 

#深浅copy

import copy
l1 = [257, 'a', [4, 5, 6]]
print(l1)
print(id(l1))
# print(id(l1[0]))
l2 = copy.deepcopy(l1)  # [1, 'a', [4, 5, 6]]
l2[2][0] = 4444
print(l2)
print(id(l2))
print("l1:", l1)
print("id_l1:", id(l1))

 

5、总结

1、有序

2、可变类型

2、存多个值

 

五、元祖 tuple

1、用途:用于存多个不同类型的值,不能存可变类型(列表)

2、定义方式:通过小括号存数据,数据之间用逗号分隔,值不可变,有索引。

                       #若容器里只有一个值,值的后面要加上逗号,否则返回字符串。

3、常用方法

#索引取值(正,反)
t = ('a','b','c','d')
print(t[0])   #a
print(t[-1])  #d

#索引切片
print(t[0:2])   #('a', 'b')

#in/ not in
print('a' in t)  #True

#len()
print(len(t))  #4

#for
for i in t:
    print(i)
# a
# b
# c
# d

4、总结

1、有序

2、不可变类型

2、存多个值

 

六、字典 dict

1、用途:用于存多个不同类型的值,不能存可变类型(列表)

2、定义方式:通过花括号存数据,通过key:value来定义键值对数据,每个键值对中间用逗号分隔。

                      #key在定义时必须是不可变类型,value可以是任意类型。

三种定义方式:

#  第一种
d1 = {'name':'nick', 'age':18}

#  第二种
d2 = dict('name':'nick', 'age':18)

#  第三种 zip
l1 = ['name','age']
l2 = ['nick',18]
z1 = zip(l1,l2)
print(dict(z1))  #{'name': 'nick', 'age': 18}

3、方法

# 按照key:value映射关系取值(可存可取)

d1 = {'name': 'nick', 'age': 18}
# print(d1['name'])  #nick 取值

# d1['name'] = 'bonny'
# print(d1)   # {'name': 'bonny', 'age': 18}   改值

# d1['gender'] = 'male'
# print(d1)   # {'name': 'nick', 'age': 18, 'gender': 'male'}   添值

# in/ not in  默认判断key
print('name' in d1)  # True

#len() 获取键值对的个数
print(len(d1))  #2

内置方法

# get() 获取key的值,若值不在,默认返回none

d1 = {'name': 'nick', 'age': 18}

# a= d1.get('xxx',123)  #key不存在,可以设置默认返回值
# print(a)   #123

print(d1.get('age'))  # 18
print(d1.get('gender'))  # None

#keys / values / items
print(d1.keys())   # ['name', 'age']  返回列表
print(d1.values())   # ['nick', 18]   返回列表
print(d1.items())   # [('name', 'nick'), ('age', 18)]  返回列表套元祖,每一个item都是存在元祖

for key in d1:
    print(key)    
#name         #默认遍历的是字典的key
#age  

for key in d1.keys():
    print(key)
#name
#age

for value in d1.values():
    print(value)
#nick
#18

for item in d1.items():
    print(item)
#('name', 'nick')
#('age', 18)

#pop 指定key删,有返回值,值为对应value
d1 = {'name': 'nick', 'age': 18}
a= d1.pop('name')
print(d1)  # {'age': 18}
print(a)  # nick

#popitem() 随机删一组item,有返回值,值是元祖
d1.popitem()
print(d1)

#update() 用新字典替换旧字典,有则修改,无则添加
d1.update({'name':'peter'})
print(d1)   # {'name': 'peter', 'age': 18}  修改

d1.update({'b': 1})
print(d1)     #{'name': 'nick', 'age': 18, 'b': 1} 添加

#fromkeys()  生成一个新字典
d2 = {}
d2 = d2.fromkeys([1, 2, 3], 'e')
print(d2)   # {1: 'e', 2: 'e', 3: 'e'} 


#setdefault() key不存在时新增item,有返回值,返回新增value,key存在,返回对应value
d1 = {'name': 'nick', 'age': 18}
d3 = d1.setdefault('d', 999)
print(d3)    # 999
print(d1)   # {'name': 'nick', 'age': 18, 'd': 999}  key不存在时新增item有返回值

d4 = d1.setdefault('name', 888)   #key存在,返回对应value
print(d4)  #nick

4、总结

无序

可变类型

存多个值

 

 

七、集合 set

1、用途:去重、关系运算

2、定义方式:通过大括号存储数据,每个元素通过逗号分隔.

                        定义空集合,必须使用set()来定义

                       

# l1 = []
# s1 = ""
# d1 = {}
# ss1 = set()    # 定义空集合

frozenset() 不可变集合

3、常用方法

s1 = {'a', 'b', 'c', 'd', 'e', 'e'}
s2 = {'c', 'b', 'f', 'd', 'g'}

print(s1) #{'a', 'c', 'b', 'd', 'e'} 去重

print(s1 | s2)  #{'c', 'g', 'a', 'b', 'e', 'd', 'f'} 合集

print(s2 & s1)  #{'d', 'b', 'c'}  交集

print(s1 - s2)  #{'a', 'e'}  差集

print(s2 - s1)  #{'g', 'f'}  差集

print(s1 ^ s2)  #{'g', 'f', 'e', 'a'} 对称差集

print(s1 > s2)  #False

print(s2 > s1)  #Fals

 

4、总结

无序

可变

存多个值

 

八、总结

存一个值:整型、浮点型、字符串
存多个值:列表、元组、字典、集合


可变or不可变:
可变: 列表,字典
不可变:整型、浮点型、字符串、元组、集合

有序or无序:
有序:字符串、列表、元组
无序:字典、集合

占用空间:
字典
列表
元组
集合
字符串
数字类型

 

 

posted @ 2019-11-05 16:16  小猪皮蛋  阅读(416)  评论(0编辑  收藏  举报