day1-6 字符串、列表、元组、字典、类型转换

day1

1、python历史。

宏观上:python2 与 python3 区别:
python2 源码不标准,混乱,重复代码太多,
python3 统一 标准,去除重复代码。

2、python的环境。

编译型:一次性将所有程序编译成二进制文件。
缺点:开发效率低,不能跨平台。
优点:运行速度快。
:C,C++等等。

解释型:当程序执行时,一行一行的解释。
优点:开发效率高,可以跨平台。
缺点:运行速度慢。
:python ,php,等等。

3、break:跳出循环    continue:到循环首

day2

 1、编码

1bit     8bit = 1bytes
1byte     1024byte = 1KB
1KB      1024kb = 1MB
1MB      1024MB = 1GB
1GB      1024GB = 1TB

  最初是由美国人发明的ascii码,为密码本,后来发明了万国码“unicode”,可是代表汉子要占用4个字节,太大了;

  所以发明了utf-8、utf-16、utf-32,一个字符24为,3字节

    utf-8:最少用一个字节,8位表示一个英文;
        欧洲16位,两个字节

        亚洲24位,3个字节

中国人发明了gbk,一个中文16位去表示,2个字节

    GBK:基于ascii研发的,只能支持中文和英文,不能喝utf-8直接转换

2、逻辑运算:And、or、not

  • 优先级:( )>not>and>or
  • int ——> bool  非零的转换成bool为True  0转换为bool是False
  • bool ——> int  True=1    False=0
  • print(x or y)  x 为 True时(非零为True),返回x  否则返回y
  • print(x and y)  x 为 True时        返回y  凑则返回x
  • print(1 or 2 and 3 or 1 > 2 and 5 )  找找类似这样的规律  “我感觉看到or就行”

 day3

1、int

  • *.bit_length()    //求数字转换为二进制最小长度

2、转换

 1 # bool True False
 2 # int ——> str
 3 i = 1
 4 s = str(i)
 5 # str ——> int  //只有数字可以转换
 6 s = '123'
 7 i = int(s)
 8 # int ——> bool  //非零就是True,0位False
 9 i = 3
10 b = bool(i)
11 # bool ——> int     // True = 1, False = 0
12 ''' ps:
13 while True:
14     pass
15 while 1:    # 效率高
16     pass
17 '''
18 
19 # str ——> bool      //字符串位空 = False,非空为True

3、str

 1 # 索引和切片
 2 s = "ABCDESDASDEG"
 3 
 4 s1 = s[0]           # 取出第一个字母(A)
 5 s2 = s[2]           # 取出第三个字母(B)
 6 s3 = s[-1]          # 取出倒数第一位(G)
 7 s4 = s[-2]          # 取出倒数第二位(E)
 8 # 切片:顾首不顾尾
 9 
10 s5 = s[0:3]         # 取出ABC
11 s6 = s[0:-1]        # 取出第一个到倒数第二个(ABCDESDASDE)
12 s7 = s[0:]          # 取出全部
13 s8 = s[:]           # 取出全部
14 # 跳着取[首:尾:步长]
15 
16 s9 = s[0:5:2]       # 第0个索引盗第5个索引,跳两个取(ACE)
17 
18 # 倒着取
19 
20 s10 = s[3::-1]      # 取 DCBA
21 s11 = s[-1::-1]     # 逆序取全部
22 s12 = s[::-1]       # 逆序取全部
23 
24 # 字符串操作
25 s = 'alex.egon.wusir'
26 s1 = s.title()              # 以字符和数字隔开的,其后的字母大写 返回(Alex Egon Wusir)
27 
28 s = 'alexWUsir'
29 # 更改大小写
30 s1 = s.capitalize()         # 首字母大写,其它大写的也变成小写
31 s1 = s.upper()              # 全部变成大写
32 s1 = s.lower()              # 全部小写
33 s1 = s.swapcase()           # 大小写翻转
34 # 居中和制表符
35 s1 = s.center(20, "#")      # 设置一个20的长度,让字符串居中,默认用空格填充两边,可以使用其他符号,如"#"号
36 s1 = s.expandtabs()         # 如果字符串中有“\t”则,在前边的封8进行补位
37 # 字符串的判断
38 s1 = s.startswith("al")     # 如果是以什么开头,是返回True
39 s1 = s.startswith("e", 2)   # 从第二个字符到最后是不是以”e“开头,是返回True
40 # 字符串的查找
41 s1 = s.find("W")            # 查找字符串中是否有某个元素,有的话返回索引;没有返回-1
42 s1 = s.find("U", )          # 从第二个开始进行查找,如果找到返回索引,找不到返回-1
43 s1 = s.index("U")           # 寻找元素,找到返回索引,找不到报错
44 # 删除空格
45 s1 = s.strip()              # 去除前后的空格
46 s1 = s.strip("@#$")         # 删除字符串中的前后@#$,不论顺序
47 s1 = s.rstrip()             # 删除右侧
48 s1 = s.lstrip()             # 删除左侧
49 # 统计个数
50 s1 = s.count("a")           # 计数字符串中有几个a
51 # 分割 str ——> list
52 s1 = s.split()              # 以空格分割为列表
53 # 公共方法,字典、列表、元组都可以用的
54 len(s)       # 测量总共有几个元素
55 # 格式化输入
56 s1 = "我叫{},今年{},爱好{},再说一次我叫{}".format('太白', 20, 'women', '太白')
57 s1 = "我叫{0},今年{1},爱好{2},再说一次我叫{0}".format('太白', 20, 'women')
58 
59 # 替换
60 s = '我的敬爱傻傻的啥大事傻傻卡号'
61 s1 = s.replace("傻傻", '聪明')          # 替换全部
62 s1 = s.replace("傻傻", '聪明', 1)       # 替换全部第一个
63 
64 # is系列
65 s = "asdla131"
66 s1 = s.isalnum()        # 是不是由字母或者数字组成
67 s1 = s.isalpha()        # 是不是由字母组成
68 s1 = s.isdigit()        # 是不是由数字组成
View Code

 day4

1、list

 1 li = ["alex", [1, 2, 3], "wusir", "egon", "女神"]
 2 # l1 = li[0]
 3 # l2 = li[1]
 4 
 5 #
 6 # 1、增加:list.append        //默认增加到最后
 7 # li.append("日天")
 8 # li.append(2)
 9 # 持续添加,想退出按q or Q
10 # while 1:
11 #     name = input(">>>")
12 #     if name.lower().strip() == "q":
13 #         break
14 #     else:
15 #         li.append(name.strip())
16 # 2、添加list.extent         //增加都最后
17 # li.extend("123")
18 # li.extend([1, 2, 3])
19 # 3、插入:list.insert       //按照索引插入
20 # li.insert(4, "大灰")
21 
22 #
23 # 1、li.pop           //按照索引去删除,返回值为删除的元素,为空默认删除最后一个
24 # print(li.pop())
25 # 2、li.remove        //按照元素删除,元素必须存在,否则报错
26 # li.remove("egon")
27 # 3、li.clear         //删除所有元素
28 # li.clear()
29 # del              //删除列表,也可以切片删除
30 # del li
31 # del li[0:2]
32 
33 #
34 # 1、直接改索引的值
35 # li[0] = 'hello'
36 # 2、切片改,选择切片范围,可以随便改,可大于范围,可小于范围
37 # li[0:1] = "牛牛牛"
38 # li[0:2] = [1, "asd", '你好', [1, 2]]
39 
40 #
41 # 1、循环
42 # for i in li:
43 #     print(i)
44 # 2、切片
45 # print(li[0:3])
46 
47 # 公共方法
48 # print(len(li))
49 # print(li.count('egon'))
50 # print(li.index("wusir"))
51 
52 
53 li = [1, 64, 95, 55, 123]
54 
55 # li.sort()                   # 正向排序
56 # li.sort(reverse=True)       # 倒序排序
57 # li.reverse()                # 反转
58 print(li)
list的增删改查

2、list嵌套

1 li = ['taibao', '武藤兰', '苑昊', ['alex', 'egon', 89], 23]
2 # print(li[1][1])     # 找到'藤'
3 li[0] = li[0].capitalize()  # ‘taibai’的首字母大写
4 li[2] = li[2].replace("", '日天')

3、元祖

1 # tu = (1, 2, 3, ['mrxuan', 'qwer', 'zxcvb'], 'egon')
2 # tu[3][3] = tu[3][3].upper()
3 # tu[3].append("Q")
4 # print(tu)

4、字符串和列表的转换以及join的方法运用

1 # 列表 --> str    join
2 s = "-".join(["ni", 'hao', 'ya'])
3 print(s)
4 # 字符串转换为列表
5 li = '我 你 他 哈 her new'.split()
6 print(li)

5、range的用法

1 # range
2 
3 for i in range(0, 10):
4     print(i)
5 for i in range(10, 0, -2):
6     print(i)

day5

 1 # dict
 2 """
 3 数据类型划分:可变数据类型,不可变数据类型
 4 不可变数据类型:元组,boolint,str     可哈希
 5 可变数据类型:list,dict,set           不可哈希
 6 dict key:必须是不可变数据类型  可哈希
 7 dict value:任意数据类型
 8 
 9 dict 优点:
10         二分查找
11         存储大量的关系数据
12      特点:
13         无序的
14 """
15 
16 # dic = {
17 #     'name': ['大猛', '小孟'],
18 #     'py9': [{'num': 71, 'avg_age': 18}],
19 #     True: 1,
20 #     (1, 2, 3): 'wuyiyi',
21 #     2: '二哥'
22 # }
23 
24 # dic1 = {'age': 18, 'name': 'jin', 'sex': 'male'}
25 
26 # 增
27 # 1、 索引修改
28 # dic1['high'] = 185      # 没有键值对,添加
29 # dic1['age'] = 16        # 如果有建,则值覆盖
30 # 2、setdefault  键值对有的话,不做任何改变,没有则添加
31 # dic1.setdefault('weight', 130)
32 
33 # 删
34 # 1、pop  返回key的value
35 # print(dic1.pop('name'))
36 #     如果没有则会报错; 可以在逗号后边添加一个参数,则不会报错
37 # dic1.pop('aa')
38 # dic1.pop('aa', None)        # None可以自定义写其他的,设置的参数将会成为pop的返回值
39 # dic1.popitem()      # 随机删除一个键值,返回一个删除键值元组
40 # del dic1['name']    # 删除
41 # del dic1              # 删除字典
42 
43 # 改
44 # dic1 = {'age': 18, 'name': 'jin', 'sex': 'male'}
45 # dic = {'age': 18, 'name': 'alex', 'sex': 'male'}
46 # dic1.update(dic)      # 将dic的字典更新到dic1,有的话覆盖,没有则增加
47 
48 # 查
49 # print(dic1.keys())          # 所有的key
50 # print(dic1.values())        # 所有的value
51 # print(dic1.items())         # 所有字典的键值
52     # for i in dic1:
53     #     print(i)
54     # for i in dic1.keys():
55     #     print(i)
56     # for i in dic1.values():
57     #     print(i)
58     # for k, v in dic1.items():
59     #     print(k, v)
60 # print(dic1['name'])
61 # print(dic1['name1'])                  # 报错
62 # print(dic1.get('name1'))                # 不报错
63 # print(dic1.get('name1', '没有这个键'))    # 果果没有key则会返回后边的str
64 # dic1.clear()          # 清空字典
65 
66 # print(dic1)
dict的增删改查

小知识汇总

# = 赋值    == 比较     is 比较内存地址    id(内容):输出内存地址

# 数字, 字符串  定于小数据池,节省内存空间

# 数字的范围:-5 -- 256之间的数字 会开辟一个内存空间

# 字符串:

  1. 不含有特殊字符
  2. s * 20 还是同一个地址,s * 21 以后都是两个,s为一个字符
编码:
ASCII
A:00000010 8位 一个字节
unicode
A:00000000 00000001 00000010 00000100 32 位 四个字节
中:00000000 00000001 00000010 00000100 32 位 四个字节
utf-8
A: 0010 0000 8位 1个字节
中: 00000001 00000010 00000100 24 位 三个字节
gbk
A: 00000110 8位 一个字节
中: 00000010 00000110 16位 两个字节


1、个个编码之间的二进制,是不能互相识别的,会产生乱码。
2、文件的储存、传输,不能使unicode(只能是ytf-8 utf-16 gbk gbk2313 ASCII)等


python3:
str 在内存中是用unicode编码。
bytes类型:
    
        对于英文:
str : 表现形式:s = "alex"
编码方式:010101010 unicode
bytes: 变现形式:s = b"alex" b代表bytes类型
编码方式:000101010 utf-8 gbk.....
对于中文:
str : 表现形式:s = "中国"
编码方式:010101010 unicode
         
1                 s = 'alex'
2                 s1 = b'alex'
3                 print(s,type(s))
4                 print(s1,type(s1))
            bytes:  变现形式:s = b"x\e91\e91\e91\e01\e21\e31\e32"    b代表bytes类型
编码方式:000101010 utf-8 gbk.....
1           s = '中国'
2                 s1 = b'中国'
3                 print(s,type(s))
4                 print(s1,type(s1))
1 s1 = "alex"
2 # encode 编码, str ——> bytes
3 s2 = s1.encode('utf-8')
4 s2 = s1.encode('gbk')
5 s10 = "中国"
6 s11 = s10.encode('utf-8')
7 s11 = s10.encode('gbk')

 

 

猜你喜欢

转载自www.cnblogs.com/-xuan/p/9938938.html