首页 > 其他 > 详细

基础部分:《实战深度理解笔记》1-5

时间:2019-02-07 13:28:57      阅读:187      评论:0      收藏:0      [点我收藏+]

1   【99乘法表】

A. 嵌套循环

 1 ## 2. 嵌套循环
 2 # (1)
 3 for k in range(1,10):
 4     for k1 in range(1,10):  # 关键
 5         print( %d*%d=%d   % (k,k1,k*k1),end = ‘‘ )
 6         if k==k1:
 7             print( )
 8             break
 9 print(\n)
10 
11 # (2)
12 for i in range(1,10):
13     for j in range(1,i+1):  # 关键
14         print( %d*%d=%d % (j,i,i*j),end =    )
15     print(  )

 

B. 封装类-初始化函数__init__(self)】

 1 ## 3. 封装【类-实例+初始化函数__init__(self)】
 2 class 乘法表():
 3     def __init__(self):
 4         self.k=int(input(输入整数1-10:))
 5     # 内部定义属性
 6     def 打印(self):
 7     # k是init部门的员工,用的时候要和它的上司init说一下
 8     # i\x是自己部门员工,不用加前缀
 9         for i in range(1,self.k+1):
10             for x in range(1,i+1):
11                 print(%d*%d=%d%(i,x,i*x),end= )
12             print( )
13 结果 = 乘法表()
14 结果.打印()

 

2   查明星和电影

 1 ## 只能差1次
 2 v = {
 3     妖猫传: [黄轩, 染谷将太, 王力宏],
 4     无问西东: [章子怡, 王力宏, 祖峰],
 5     超时空同居: [雷佳音, 佟丽娅],
 6 }
 7 a = input(请输入你想查询的演员姓名:)  # 获取用户想查询的名单
 8 b = 0  # 计数器,计算一共遍历了多少次
 9 c = []  # 定义一个空列表,存放被查询到的电影
10 for i in v:  # 取出字典V中的列表
11     b = b + 1  # 累计遍历次数,每次+1
12     if a in v[i]:
13         c.append(i)  # 将查询到的电影放入列表C
14         if b < len(v):  # 如果遍历次数<字典所含数据数量,则继续查找,查出该演员所有出演过的电影
15             continue
16 if len(c) > 0:  # 遍历结束,如果C数据含量不为0,则输出结论
17     print(a + 出演了电影:, end=\n)
18     for l in c:
19         print(l, end=\n)
20 # end=‘\n‘表示 循环内外连接符号,注意都在后面
21 else:  # C数据含量为0,则输出未收录
22     print(后台暂未收录演员 + a + ,请保持关注哟!)

 

 

 1 ##加入3次循环
 2 v={妖猫传:[黄轩,染谷将太],无问西东:[章子怡,王力宏,祖峰],超时空同居:[雷佳音,佟丽娅]}
 3 for i in v:
 4     print(i)     #
 5     print(v[i])  #
 6 x=0
 7 while x<3:
 8     x=x+1
 9     a=input(你想查询哪个演员?:)
10     for i in v:
11         actors=v[i]
12         if a in actors:
13             print(a in actors)
14             print(a+出演了电影+ i)
15         continue
16 else:
17     print(a in actors)
18     print(sorry,查无此人)

 

3  HellowKitty倒计时随机抽奖器(def函数,return语句)

1)方法1:random, time 

 1 ###  1. 原始代码
 2 import random,time
 3 luckylist = [海绵宝宝,派大星,章鱼哥]
 4 a = random.choice(luckylist)
 5 print(开奖倒计时,3)
 6 time.sleep(1)
 7 print(开奖倒计时,2)
 8 time.sleep(1)
 9 print(开奖倒计时,1)
10 time.sleep(1)
11    ## 使用三引号打印hellokitty的头像
12 image = ‘‘‘
13  /\_)o<
14 |      \15 | O . O|
16  \_____/‘‘‘
17 print(image)
18 print(恭喜+a+中奖!)
19 print(\n\n)

2)方法2:封装函数def

 1 ### 2. 使用 封装函数def
 2 import random,time
 3 def a(a1,a2,a3):
 4     x=[a1,a2,a3]
 5     global b
 6 # 定义b前先声明它是【全局变量】
 7     b=random.choice(x)
 8     # 随机选择列表元素
 9     return b
10 a(海绵宝宝,派大星,章鱼哥)
11 print(开奖倒计时,3)
12 time.sleep(1)
13 print(开奖倒计时,2)
14 time.sleep(1)
15 print(开奖倒计时,1)
16 time.sleep(1)
17 image = ‘‘‘
18  /\_)o<
19 |      \20 | O . O|
21  \_____/‘‘‘
22 print(image)
23 print(恭喜+b+中奖!)

 

4  实例:类的继承

(1)【人事系统管理】

 1 # (3)人事系统管理
 2 class hrSystem:
 3     list=[bob, candy, jony, kelly]
 4     name = ‘‘
 5     salary = 0
 6     kpi = 0  # 员工绩效 kpi
 7     @classmethod          ### A. 录入
 8     def record(cls, name, salary, kpi):
 9         cls.name = name
10         cls.salary = salary
11         cls.kpi = kpi
12     @classmethod          ### B. 检查
13     def check_name(cls):
14         if cls.name in cls.list:
15             print(\n录入正确!)
16             return 1   # return 必须写在最后
17         else:
18             print(\n录入错误!spy不是本公司员工!)
19             return 0
20     @classmethod          ### C. 打印
21     def print_record(cls):
22         if cls.check_name():  # 同级调用,链接return返回值!
23             print(cls.name + 的工作信息如下:)
24             print(本月工资: + str(cls.salary))
25             print(本年绩效: + str(cls.kpi))
26         else:
27             exit() # 不是员工无奖励,结束程序
28     @classmethod          ### D. 奖励
29     def kpi_reward(cls):
30         final_kpi=cls.kpi
31         if final_kpi > 95:
32             print(恭喜+cls.name+拿到明星员工奖杯!)
33         elif 80 <= final_kpi <= 95:
34             print(恭喜 + cls.name + 拿到优秀员工奖杯!)
35         else:
36             print(很遗憾,+cls.name+,希望来年勇创佳绩!)
37 hrSystem.record(bob, 13000, 98)
38 hrSystem.print_record()
39 # check_name()通过print_record()调用
40 # 所以不用写hrSystem.check_name()!!!
41 hrSystem.kpi_reward()
42 hrSystem.record(candy, 8000, 89)
43 hrSystem.print_record()
44 hrSystem.kpi_reward()
45 hrSystem.record(k, 8000, 75)
46 hrSystem.print_record()
47 hrSystem.kpi_reward()

(2)【出租车计费】

 1 # (4)出租车计费
 2 #【父类】
 3 class 出租车():
 4     def __init__(self,x1,x2,x3,x4):
 5         self.name=x1
 6         self.单价=x2
 7         self.起步 = x3
 8         self.起步费 = x4
 9     def 计费(self):
10         self.record()
11         self.output()
12     def record(self):
13         print(self.name + 每公里收费 + str(self.单价) + 元,,end=‘‘)
14         print(起步+str(self.起步)+公里,起步费+str(self.起步费)+,end=‘‘)
15         self.num = float(input(\n行程公里数:))
16     def output(self):
17         if self.num<=self.起步:
18             print(按起步费算:+str(self.起步费))
19         else:
20             money=self.起步费+(self.num-3)*self.单价
21             print(车费是:+str(money)+\n)
22      # money是本部员工,num/单价/最低费用是别部员工
23 a = 出租车(张三, 2.5, 3.0, 15)
24 a.计费()
25 #【子类】
26 class 电动车(出租车):   # 重新定义父类初始化函数
27     def __init__(self,x1,x2,x3,x4):
28         self.name = x1
29         self.单价 = 0.8*x2
30         self.起步 = x3
31         self.起步费 = 0.8*x4
32 b = 电动车(李四,2.5,3.0,15)
33 b.计费()

(3)【调查问卷系统】(考虑不同问题、参与人数)

 1 # (5)问卷调查类
 2 # 【父类】
 3 class Survey():
 4     def __init__(self,question):
 5         self.question = question
 6         self.list= []
 7         print(self.question)
 8     def store_response(self,a):
 9         self.list.append(a)
10 f=Survey(你最喜欢的美食?)   # 实例化
11 ### 父类外面的循环
12 # while True:
13 #     a=input(‘请回答,按 q 键退出:‘)
14 #     if a==‘q‘:
15 #         break
16 #     f.store_response(a) # 调用父类函数a=new
17 # for i in f.response: # 实例.属性[]
18 #     print(‘美食:‘+i)
19 # print(‘\n‘)
20 
21 # 【子类】
22 class New(Survey):
23     def __init__(self,question):
24         Survey.__init__(self,question) # 调用父类方法
25         self.dict={}
26     def store_response(self,n,j):
27         self.dict[n]=j  # 添加字典的键和值
28 h=New(你的籍贯地是哪?)
29 ### 子类外面的循环
30 while True:
31     j=input(请回答,按 q 键退出:)
32     if j==q:
33         break
34     n=input(输入姓名:)
35     h.store_response(n,j) # 调用父类函数a=new
36 # for i in h.dict():      # 实例.属性{}
37 #     print(i+‘:‘+h.dict[i])
38 for n,j in h.dict.items():   # 同时取键:值
39     print(n+:+j)

 

5  哈利波特学院-成绩[]/{}文件读写)

1)方法1

 1 ## 1. v1.0小课
 2 file=open(sample/scores.txt,r)
 3 # encode‘utf-8‘是编码方法, encoding=‘utf-8‘是参数??
 4 file_lines = file.readlines()      #按行读取变量file里面的数据
 5 file.close()
 6 print(file_lines)
 7 #[‘罗恩 23 35 44\n‘, ‘哈利 60 77 68 88 99\n‘, ‘赫敏 97 99 89 91 95 99\n‘, ‘马尔福 100 85 90‘]
 8 final=[]
 9 for i in file_lines:
10     print(i)
11 #罗恩 23 35 44
12     a=i.split()    #按空格-字符串分割函数split()-合并函数 ‘‘.jion()
13     print(a)
14 #[‘罗恩‘, ‘23‘, ‘35‘, ‘44‘]
15     name=a[0]      #人名
16     sum=0          #分数
17     for mark in a[1:]:
18         sum=sum+int(mark)     #人名对应的总分数
19     f=name+str(sum)+\n      #最终的成绩单:人名+总分数
20     final.append(f)
21 winner=open(./winner.txt,w,encoding=utf-8)
22 winner.writelines(final)      #最终成绩单 按行写入 变量winner
23 winner.close()
24 print(final)
25 #[‘罗恩102\n‘, ‘哈利392\n‘, ‘赫敏570\n‘, ‘马尔福275\n‘]
26 for t in final:
27     print(t)     #罗恩102

2)方法2

 1 ## 2. v2.0小课
 2 # (1)读取人名、各分数
 3 a=open(sample/scores.txt,r)
 4 b=a.readlines()
 5 a.close()
 6 print(b)
 7 
 8 # (2)计算总分,存入Scores11
 9 dict = {} # {‘罗恩‘: 102, ‘哈利‘: 392}
10 mark=[]  # [100,99,98,,,]
11 for i in b:
12     print(i)
13     j=i.split( ) # 最后一行是‘\n‘
14     print(j)
15     name=j[0]
16     sum=0
17 ## A. 计算总分
18     for k in j[1:-1]:  # 不包括最后一行‘\n‘
19         sum=sum+int(k)
20         mark.append(k)
21     dict[name]=sum
22 print(dict)
23 ## B. 提取字典中的键:值 写入scores11
24 for n,m in dict.items():
25     x=n+str(m)+\n
26     print(最终成绩——+x)
27 # 下面是打开文件的另一种方式,为避免忘记close(),很常见
28     with open(sample/scores11.txt,a) as a:
29         c=a.writelines(x)  # <class string>
30 ## mark=[]是为了复习一遍 【列表自动排序】
31 print(mark)
32 mark=list(map(int,mark))### 字符串str变整数int
33 print(mark)
34 mark.sort(reverse=True) ### 降序
35 print(mark)
36 print(\n)
37 ## (3)scores11排序
38 dict1={}
39 num=[]
40 with open(sample/scores11.txt,r) as a:
41     d=a.readlines()
42 for i in d:
43     n=i[0:-4]      # 1字符读取姓名
44     m=int(i[-4:])  # 1字符读取分数,不加int会出现‘\n‘
45     num.append(m)
46     dict1[m]=n
47 print(num)  #[102, 392, 570, 275]
48 print(dict1)
49 num.sort(reverse=True) # 降序
50 print(num)  #[570, 392, 275, 102]
51 with open(sample/scores12.txt,a) as a:
52     for i in num:
53         x=dict1[i]+str(i)+\n
54         e=a.writelines(x)
55         print(x)

 

 

基础部分:《实战深度理解笔记》1-5

原文:https://www.cnblogs.com/lj-attitudes0303/p/10354706.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!