第一章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一章相关的知识,希望对你有一定的参考价值。

本节内容

  1. 列表、元组操作
  2. 字符串操作
  3. 字典操作
  4. 集合操作
  5. 文件操作
  6. 字符编码与转码

sys模块

import sys

print(sys.path)  打印模块路径

print(sys.argv)  打印当前文件相对路径 ,与用户交互 如shell

中$1`$2

 

与或关系

or    或
and 和
not  否
in    是否存在
not in

is
type(a) is list   判断是不是列表

 

&   与
|    或

^   两个为真才为真

>>    先向右移
<<    向左移

 

运算

8 ** 2        次方
3 + 2         加
16 - 8        减
8 * 8         乘
8 / 2         除
100 // 50    求整除
100 % 50    取模

 

列表

name = ["zhang","li","wang","liu"]

print(name[-3:])              切片倒数3个

name.append("han")         添加
name.insert(2,"hanwei")    插入
name[2] = "99999"           修改
name.remove("zhang")      删除
del name[1]                     删除
name.pop(1)                    删除
name.sort()                      排序
name.reverse()                 反向排序
name.clear()                    清除
print(name.index("wang")) 打印下标
print(name.count("liu"))    取总数

浅copy 

name = ["zhangsan","lisi",["ai","ni"],"wangermazi","liuliu"]
name2 = name.copy()
name[1] = "wangwu"
name[2][0] = "aa"
print(name)
print(name2)

深copy

import copy
name = ["zhangsan","lisi",["ai","ni"],"wangermazi","liuliu"]
name2 = copy.deepcopy(name)
name[0] = "zhang"
name[2][0] = "vv"
print(name)
print(name2)

循环打印列表

for i in name:
print(i)

不常切片列表
print(name[::2])

 

元组和列表的区别在于不可以删改 
元组又叫只读列表

三元运算

a,b,c = 2,4,6

print(5) if a < b else print(444)

购物车练习

技术分享
 1 #!/usr/bin/python env
 2 # -*-  encoding:utf8 -*-
 3 
 4 sc_list = [
 5     (iphone7,7999),
 6     (tesla,1000000),
 7     (bike,800),
 8     (coffee,50),
 9     (MAC,9000),
10 ]
11 
12 salary = input("\\033[35m请输入你的金额:\\033[0m")
13 user_sp = []
14 if salary.isdigit():
15     salary = int(salary)
16     while True:
17         for index,time in enumerate(sc_list):
18             print(index,time)
19         user_gw = input("\\033[35m请选择你要购买的商品:\\033[0m")
20         if user_gw.isdigit():
21             user_gw = int(user_gw)
22             if user_gw <= len(sc_list) and user_gw >= 0:
23                 t_time = sc_list[user_gw]
24                 if salary >= t_time[1]:
25                     salary -= t_time[1]
26                     user_sp.append(t_time)
27                 else:
28                     print("\\033[35m你的%s不足!\\033[0m"%salary)
29             else:
30                 print("\\033[35m你输入的商品不存在!\\033[0m")
31         elif user_gw == q:
32             print("\\033[36m你的剩余余额为:%s\\033[0m" % salary)
33             for i in user_sp:
34                 print(i)
35             exit(quit)
36         else:
37             print(\\033[34m输入错误!\\033[0m
View Code

字典

info = {‘stu1101‘: "tengkan wu",
‘stu1102‘:"longze luola",
‘stu1103‘:"xiaoze maliya",
}

增加

存在修改不存在添加

技术分享
1 info["stu1104"] = "苍井空"
View Code

修改

技术分享
1 info["stu1101"] ="武藤兰"
View Code

删除

技术分享
1 info.pop("stu1101")
2 del info["stu1102"]
3 info.popitem()
View Code

查找不存在会报错

技术分享
1 print(info[stu1101])
View Code

查找不存在不会报错

技术分享
1 print(info.get(stu1101)
View Code

嵌套字典

技术分享
 1 av_catalog = {
 2     "欧美":{
 3         "www.youprn.com":["很多免费的,世界最大的","质量一般"],
 4         "www.pornhub.com":["很多免费的,也很大","质量比yourporn高点"],
 5         "letmedothistoyou.com":["多是自拍,高质量图片很多","资源不多,更新慢"],
 6         "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
 7     },
 8     "日韩":{
 9         "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"],
10           },
11     "大陆":{
12         "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
13     }
14 }
View Code

追加操作

技术分享
1 av_catalog["大陆"]["1024"][1] += "可以用爬虫爬下来"
View Code

打印keys,values

技术分享
1 print(info.values())
2 print(info.keys())
View Code

添加,不存在添加,存在不做任何操作

技术分享
1 info.setdefault("stu1106",alex)
2 info.setdefault("stu1102","泷泽萝拉")
View Code

更新

技术分享
1 b = {1:2,3:4,stu1102:"泷泽萝拉"}
2 info.update(b)
View Code

将字典转为列表

技术分享
1 print(info.items())
View Code


这是个坑少用
dict.fromkeys([1,2,3],‘testd‘)
{1: ‘testd‘, 2: ‘testd‘, 3: ‘testd‘}

循环打印字典

技术分享
1 for key in info:
2      print(key,info[key])
3 
4 
5 for k,v in info.items():
6      print(k,v)
View Code

三级菜单

1.定义字典

2.循环打印

3.让用户选择

4.循环,判断用输入的是否是数字
4.1.判断长度不可以大于字典的长度
4.2.如果用户输入的是q退出
4.3.取出用户的选择并且转换成列表

5.继续循环,判断用输入的是否是数字
5.1.判断长度不可以大于字典的长度
4.2.如果用户输入的是q退出
4.3.如果用户输入的是b退出
4.3.取出用户的选择并且转换成列表

6.继续循环,判断用输入的是否是数字
6.1.打印最后一页
6.2.如果用户输入的是q退出
6.3.如果用户输入的是b退出

技术分享
 1 #!/usr/bin/python env
 2 # -*- encoding:utf-8 -*-
 3 name = {
 4     "香港":{
 5         "音乐":{
 6             "男歌手":["陈奕迅","张学友","王杰","郭富城"],
 7             "女歌手":["王菲","梁咏琪","甄妮","陈慧琳"]
 8         },
 9         "影视":{
10             "男演员":["刘德华","谢霆锋","成龙","周瑞发"],
11             "女演员":["张曼玉","叶玉卿","邱淑贞","温碧霞"]
12         }
13     },
14     "大陆":{
15         "音乐":{
16             "男歌手":["阿木","安琥","陈少华","戴军"],
17             "女歌手":["田震","韩晶","郭美美","王蓉"]
18         },
19         "影视":{
20             "男演员":["马天宇","蒋劲夫","陈学冬","李易峰"],
21             "女演员":["杨颖","唐嫣","杨幂","张馨予"]
22         }
23     }
24 }
25 
26 
27 
28 flag = True
29 
30 while flag:
31     for i,k in enumerate(name):
32         print(i,k)
33     user_1 = input(请输入第一级菜单,q,退出:)
34     if user_1 == q:
35         flag = True
36         break
37     if user_1.isdigit():
38         user_1 = int(user_1)
39         if user_1 <= len(name):
40             key_1 = list(name.keys())[user_1]
41             while flag:
42                 for i,k in enumerate(name[key_1]):
43                     print(i,k)
44                 user_2 = input("请选择第二级菜单,q.退出,b.返回:")
45                 if user_2 == q:
46                     flag = False
47                     break
48                 if user_2 == b:
49                     break
50                 if user_2.isdigit():
51                     user_2 = int(user_2)
52                     if user_2 <= len(name[key_1]):
53                         key_2 = list(name[key_1].keys())[user_2]
54                         while flag:
55                             for i,k in enumerate(name[key_1][key_2]):
56                                 print(i,k)
57                             user_3 = input("请选择三级菜单,q.退出,b返回:")
58                             if user_3 == q:
59                                 flag = False
60                                 break
61                             if user_3  == b:
62                                 break
63                             if user_3.isdigit():
64                                 user_3 = int(user_3)
65                                 if user_3 <= len(name[key_1][key_2]):
66                                     key_3 = list(name[key_1][key_2].keys())[user_3]
67                                     while flag:
68                                         for i,k in enumerate(name[key_1][key_2][key_3]):
69                                             print(i,k)
70                                         user_4 = input("最后一页,q.退出,b.返回:")
71                                         if user_4 == q:
72                                             flag =False
73                                             break
74                                         if user_4 == b:
75                                             break
View Code

 

以上是关于第一章的主要内容,如果未能解决你的问题,请参考以下文章

《大道至简》第一章读后感及伪代码

大道至简第一章java伪代码读后感

第一章读书笔记

大道至简第一章伪代码

大道至简第一章伪代码

编译技术图示(第一章 编译概述)