zoukankan      html  css  js  c++  java
  • 基础部分:《实战深度理解笔记》1-5

    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('
    ')
    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     # ix是自己部门员工,不用加前缀
     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='
    ')
    18     for l in c:
    19         print(l, end='
    ')
    20 # end='
    '表示 循环内外连接符号,注意都在后面
    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('
    
    ')

    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('
    录入正确!')
    16             return 1   # return 必须写在最后
    17         else:
    18             print('
    录入错误!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('
    行程公里数:'))
    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)+'
    ')
    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('
    ')
    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
    ', '哈利 60 77 68 88 99
    ', '赫敏 97 99 89 91 95 99
    ', '马尔福 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)+'
    '      #最终的成绩单:人名+总分数
    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
    ', '哈利392
    ', '赫敏570
    ', '马尔福275
    ']
    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(' ') # 最后一行是'
    '
    14     print(j)
    15     name=j[0]
    16     sum=0
    17 ## A. 计算总分
    18     for k in j[1:-1]:  # 不包括最后一行'
    '
    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)+'
    '
    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('
    ')
    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会出现'
    '
    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)+'
    '
    54         e=a.writelines(x)
    55         print(x)

     

     

  • 相关阅读:
    CSS3 03. 3D变换、坐标系、透视perspective、transformZ、transform-style添加3D效果、backface-visibility元素背面可见、动画animation、@keyfarmes、多列布局
    CSS3 02. 边框、边框圆角、边框阴影、边框图片、渐变、线性渐变、径向渐变、背景、过渡transition、2D转换(缩放、位移、旋转、倾斜)
    CSS3 01. CSS3现状、属性选择器、伪类选择器、结构伪类、伪元素选择器、颜色、文本阴影shadow、盒子模型、私有化前缀
    HTML5 01. 布局、语义化标签、智能化表单、表单元素/标签/属性/事件、多媒体、类操作、自定义属性
    webstorm 突然不能用了?解决办法~
    jQuery
    jQuery
    jQuery
    JS-特效 ~ 05. 缓动框架兼容封装/回掉函数/兼容透明度/层级、旋转轮播图、正则表达式、验证表单注册账号、
    百问网WIFI模块驱动
  • 原文地址:https://www.cnblogs.com/lj-attitudes0303/p/10354706.html
Copyright © 2011-2022 走看看