Python 学习之路 - Python 基础 - (2)

一、Python 数据类型

1、数字

int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
float(浮点数)
  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
 
2、布尔值
  真或假
  1 或 0
 
3、字符串
      "Hello World"
 
 二、三元运算
result = 值1 if 条件 else 值2

如果条件为真:result = 值1
如果条件为假:result = 值2

 

三、字符串

 1 #移除空白
 2 user_name = input("user:")
 3 if user_name.strip() == 'Amy': #可以指定脱掉前后的空格(/n)或换行...,默认空格,tab键和换行
 4     print("Welcome!")
 5 
 6 #分割
 7 names = "alex,jack,rain"
 8 name2 = names.split(",")
 9 print(name2)
10 
11 #合并
12 name3 = "|".join(name2) #按 | 把name2列表中的元素合并成一个字符串
13 print(name3)
14 print("|".join(name2))
15 
16 #判断字符串中是否存在某个字符
17 name = "Amy Wang"
18 print("" in name) # name中是否存在空格
19 
20 #查找字符串中有没有某个字符串
21 print(name.find("W")) #返回的是一个索引,没找到会返回-1
22 
23 #第一个单词的首字母大写
24 name = "amy wang"
25 print(name.capitalize())
26 
27 #两种字符串形式
28 msg = "Hello,{name}, I want see you on {day} this month"
29 msg2 = msg.format(name = "DDD",day = 27)
30 print(msg2)
31 
32 #or
33 
34 msg3 = "wwww{0},pppp{1}" #必须按顺序来
35 print(msg3.format("amy",20))
36 
37 #切片 同列表
38 name = "Amy Wang"
39 print(name[3:])
40 
41 #居中
42 print(name.center(40,"-"))
43 
44 #居右
45 print(name.rjust(40,"-"))
46 
47 #居左
48 print(name.ljust(40,"-"))
49 
50 #判断输入的是不是数字
51 age = input("your age:")
52 if age.isdigit():
53     age = int(age)
54 else:
55     print("Please enter digit type")
56 
57 #判断只包含字母和数字
58 name = "www!ggg"
59 name2 = "www3ggg"
60 print(name.isalnum()) #False
61 print(name2.isalnum()) #True
62 
63 #判断是否以什么结尾或开头
64 name = "gsdamyuuuul"
65 print(name.endswith("ul"))
66 print(name.startswith("g"))
67 
68 #转换成大写/小写
69 name = "amy wang"
70 name2 = name.upper() #换成大写
71 print(name2)
72 print(name2.lower()) #换成小写
View Code

 

四、列表

Python中的列表相当于其它语言中的数组

1.

 1 #定义列表
 2 age = 18
 3 name = ["Jack","Judy","Windy",23,age] #可以把数字,字符串,变量等都存在同一个列表
 4 print(name)
 5 
 6 #列表取值
 7 print(name[1]) #把列表下标为1的取出,并打印。列表的下标是从0开始
 8 print(name[-1])
 9 
10 #切片(多个取值输出)
11 print(name[0:2]) # 顾首不顾尾,取下标0~2的值,包括下标0,不包括下标2
12 print(name[2:]) #不写下标,默认取到最后一个值
13 print(name[:2]) #默认从第一个开始取值
14 
15 #修改列表中的值
16 name[1] = "July"
17 print(name)
18 
19 #在某个位置插入一个新的值
20 name.insert(2,"Hallen") #插入一个值到下标为2的位置。一次只能插入一个值到列表
21 name.insert(-1,"monica") #插入一个值到-1的左边位置
22 print(name)
23 
24 #删除列表中的某个值
25 name.remove("Jack") #remove 删除时要用具体的名字
26 print(name)
27 del name[1:2]
28 print(name)
29 
30 #在列表最后添加一个元素
31 name.append(20)
32 print(name)
33 
34 #步长
35 print(name[::2]) #每隔一个人输出一个人
View Code

2.

 1 name = ["Jack",9,"Judy","Windy",23,9]
 2 
 3 print(name.index("Jack"))
 4 
 5 # 列表 count, index 的用法
 6 #判断某个元素在列表中是否存在,如果存在输出存在的个数,并指出该元素第一个存在的位置
 7 if 9 in name:
 8     num_of_ele = name.count(9) # 存在输出存在的个数
 9     ele_position = name.index(9) # 指出该元素第一个存在的位置
10     print("[%s] 9 in the list.The first 9 position is %s " % (num_of_ele,ele_position))
11 
12 #把列表中的所有9变成8
13 for i in range(name.count(9)):
14     ele_position_2 = name.index(9)
15     name[ele_position_2] = 8
16 print(name)
17 
18 # 给name列表扩展一个新的列表
19 name2 = ["ag","ab","cf","cd","be"]
20 name.extend(name2)
21 print(name)
22 print(name2)# name2仍然存在
23 
24 #把列表倒过来
25 name.reverse()
26 print(name)
27 
28 #排序列表中的元素。3.0中,列表既有字符串又有数字不能直接排序。
29 name2.sort() # 按照ASCII码中的顺序排序
30 print(name2)
31 
32 #指定删除某个下标元素,默认删除最后一个
33 name2.pop()
34 print(name2)
35 name2.pop(2)
36 print(name2)
View Code

3.

 1 name = ["Jack",9,"Judy","Windy",[9,4,3,5],9] #name列表里面的列表会从新开辟一个内存,只是存一个地址在name列表
 2 #复制列表
 3 name3 = name.copy()
 4 name[0] = "Alex"
 5 name[4][1] = 88888
 6 name3[4][2] = 3333
 7 print(name)
 8 print(name3)
 9 #第一层的会完全复制一份独立的数据,第二层的只是把地址复制过来
10 
11 #全部完全复制出来,成为一份独立数据
12 import copy
13 name = ["Jack",9,"Judy","Windy",[9,4,3,5],9]
14 name4 = copy.deepcopy(name)
15 name[4][1] = 88888
16 print(name)
17 print(name4)
18 
19 # copy.copy(name) 相当于name.copy() 浅copy
20 
21 name = ["Jack",9,"Judy","Windy",[9,4,3,5],9]
22 name5 = name
23 name[2] = "New New"
24 name5[4][2] = 33333
25 print(name)
26 print(name5)
27 #列表不会像变量一样,值改变以后生成一个新的空间。列表赋值只是保存一个地址,
28 # name与name5,只要其中一个列表的一个值改变,另一个列表对应的值也改变
29 
30 #列表的长度
31 print("Length of name list",len(name))
View Code

 

五、元组

元组相当于只读列表,只有count,index方法,这两种方法与列表的使用方法相同。

 

六、字典

定义字典,大括号里面,key:value的形式定义,每个key:value之间以逗号隔开

注意:1. key必须是唯一的,不然会去掉后面重复的key

         2. 字典是无序的

 1 id_db = {
 2     510330669080456:{
 3         "name" : "wangDa",
 4         "age" : 22,
 5         "addr" : "Du"
 6     },
 7     510330669080457:{
 8         "name" : "wang",
 9         "age" : 23,
10         "addr" : "Du"
11     }
12 }
13 print(id_db)
14 
15 #取值
16 print(id_db[510330669080457]) #如果这个key不存在会报错
17 print(id_db.get(510330669080456))# 这个key不存在也不会报错,返回 None
18 
19 #修改
20 id_db[510330669080457]["name"] = "Cheng"
21 #新增一个不存在的key和对应的value
22 id_db[510330669080457]["Detail"] = "Child"
23 print(id_db[510330669080457])
24 
25 #删除
26 del id_db[510330669080457]["addr"]
27 print(id_db[510330669080457])
28 
29 id_db[510330669080457].pop("age")
30 print(id_db[510330669080457])
31 
32 #打印所有的key
33 print(id_db.keys())
34 
35 #打印所有的value
36 print(id_db.values())
37 
38 #到字典中找key是否存在,存在的话,返回字典中对应的key:value;不存在,创建一个新的
39 id_db.setdefault(510330669080458,{ "name" : "wangDa222"})
40 print(id_db)
41 id_db.setdefault(510330669080457,{ "name" : "wangDa333"})
42 print(id_db)
43 
44 #用一个字典更新另一个字典
45 info = {
46     510330669080456:{
47         "name" : "Amy",
48         "age" : 18,
49         "addr" : "tt"
50     },
51     1:3,
52     5:6
53 }
54 id_db.update(info)
55 print(id_db)
56 
57 #把字典转换成列表
58 print(id_db.items())
59 
60 #初始化一个新的字典,给每个key都赋同一个value
61 c = dict.fromkeys([6,7,8],[1,"test"])
62 print(c)
63 #
64 #像copy一样,第二层只是保存的一个地址,所以改一个,所有的都会改
65 c[6][0] = "555"
66 print(c)
67 
68 #字典的循环
69 for i in id_db:    #最推荐的,高效
70     print(i,id_db[i])
71 
72 for k,v in id_db.items(): #需要先转换成列表,数量大的时候费时
73     print(k,v)
View Code

 

 

 

 

 

posted @ 2016-12-19 23:02  耕耘的小白  阅读(117)  评论(0)    收藏  举报