• python 基础复习 09 之基础函数


      1 # 不用len()
      2 # s = "景老板小护士"
      3 # i = 0
      4 # for k in s:
      5 #     i += 1
      6 # print(i)
      7 
      8 # def my_len():
      9 #     i = 0
     10 #     for k in s:
     11 #         i += 1
     12 #     return i
     13 # length = my_len()
     14 # print(length)
     15 
     16 #  函数
     17 #  定义了一个函数之后,可以在任何需要它的地方调用它
     18 #  没有返回长度,就只是单纯的打印
     19 
     20 
     21 # 返回值的三种情况:
     22 #     没有返回值
     23          # 不写return
     24          # 只写return : 代表结束一个函数的继续
     25 #     返回一个值
     26          # 可以返回任何数据类型
     27          # 只要返回就可以接收到
     28 #     返回多个值
     29         #  返回多个值的情况下,可以有多个变量去接受
     30 
     31 
     32 # def func():
     33 #     l = ["静老板", "六哥"]
     34 #     for i in l:
     35 #         print(i)  #  没有返回值  怎么判断呢 看看有没有返回值
     36 #     return  #  执行了return以后 ,return那么后面的代码就不执行了
     37 #     # print("蜘蛛")  # -----> 不执行了
     38 # ret = func()
     39 # print(ret)
     40 
     41 
     42 # def func():
     43 #     l = ["老蔡", "老谢"]
     44 #     for i in l:
     45 #         if i == "老蔡":
     46 #             break  #  break 是结束循环  后面的还会执行  如例子: 会执行print("=" * 10)
     47 #             # return  # return 是结束这个函数  后面的就不会执行了
     48 #     print("=" * 10)
     49 # ret = func()
     50 # print(ret)
     51 
     52 # def func():
     53 #     return {"k": "2"}
     54 # print(func())
     55 
     56 # def func2():
     57 #     return 1,2
     58 # r1,r2= func2()
     59 # print(r1,r2)  #  返回多个值的情况下,可以有多个变量去接收
     60 
     61 # def func2():
     62 #     return 1,2,3,4
     63 # r1 = func2()
     64 # print(r1)   #  返回多个值的情况下,一个变量接收,返回的是一个元祖 (1, 2, 3, 4)
     65 
     66 
     67 # def my_len(s):  #  形参
     68 #     i = 0
     69 #     for i in s:
     70 #         i += 1
     71 #     return i  # 返回值
     72 # s = "战胜蜘蛛"
     73 # ret = my_len(s)   # 传递参数;传参  (实际参数)实参
     74 # ret = my_len([1,2,3,4,5])  #  传递参数;传参  实参
     75 # print(ret)
     76 
     77 
     78 # def f1(l1):
     79 #     for i in l1:
     80 #         print(i)
     81 #
     82 # def f2(l1):
     83 #     f1(l1)
     84 #     for i in l1:
     85 #         print(i)
     86 #
     87 # f2([1,2,3,4])
     88 
     89 
     90 
     91 # def my_sum(a,b):  # a,b ---> 位置参数
     92 #     res = a + b
     93 #     return res
     94 #
     95 # ret = my_sum(1,2) #  也可以  a = 1 ,b = 2  or  1,b = 2  但不能 1,a = 2 报错
     96 # print(ret)
     97 
     98 #  站在实参的角度上:
     99          # 按照位置传参
    100          # 按照关键字传参
    101          # 混着用可以;但是必须先按照位置传参,在按照关键字传参
    102                 # 不能给同一个变量传多个值
    103 
    104 
    105 #  站在形参的角度上:
    106         # 位置参数:必须传,且有几个参数,就传几个值
    107         # 默认参数:可以不出传,如果不传就用默认的参数,如果传了就用传的参数
    108 # def classmates(name,sex):
    109 #     # print('{} {}'.format(name,sex))
    110 #     print("%s : %s"%(name,sex))
    111 #
    112 # print("蜘蛛","nan")
    113 # print("老虎", "nv")
    114 
    115 # 只有调用函数的时候:
    116         # 按照位置传参:直接写参数的值
    117         # 按照关键字: 关键字 = 值
    118 
    119 # 定义函数的时候:
    120     # 位置参数:直接定义参数
    121     # 默认参数:关键字参数; 参数名 = “默认的值”
    122     # 动态参数:可以接受任意多个参数
    123     # 顺序:必须先定义位置参数,后定义默认参数
    124 
    125 
    126 # def sum(*args):
    127 #     n = 0
    128 #     for i in args:
    129 #         n += i
    130 #     return n
    131 #
    132 # print(sum(1,2,3))
    133 # print(sum(4,5,6))
    134 
    135 # def func(**kwargs):
    136 #     print(kwargs)
    137 #
    138 # func(a = 1,b = 3)
    139 
    140 
    141 # 动态参数有两种
    142   # *args : 接受的是按照位置参数传参的值,返回的是一个元祖
    143   # **kwargs : 接受的是按照关键字传参的值,返回的是一个字典
    144 
    145 
    146 
    147 
    148 
    149 
    150 
    151 # 习题练习
    152 # 写代码,有如下列表,利用切片实现每一个功能
    153 # li = [1,3,2,"a",4,"b",5,"c"]
    154 # 1)通过li列表的切片形成新的列表l3,l3 = [1,2,4,5]
    155 # l3 = li[::2]
    156 # print(l3)
    157 # 2)
    158 # l4 = li[1:-2:2]
    159 # print(l4)
    160 # li = [1,3,2,"a",4,"b",5,"c"]
    161 # 3)
    162 # l5 = li[-1:]
    163 # print(l5)
    164 # 4)
    165 # li = [1,3,2,"a",4,"b",5,"c"]
    166 # l6 = li[-3:0:-2]
    167 # print(l6)
    168 
    169 
    170 
    171 # lis = [["k",["qwe",20,{"k1":["tt",3,"1"]},89],"ab"]]
    172 # lis[0][1][2]["k1"][0] = "TT"
    173 # lis[0][1][2]["k1"][0] = lis[0][1][2]["k1"][0].upper()
    174 # print(lis)
    175 # lis = [["k",["qwe",20,{"k1":["tt",3,"1"]},89],"ab"]]
    176 # lis[0][1][2]["k1"][1] = "100"
    177 # print(lis)
    178 
    179 
    180 # dic = {"k1":"v1","k2":["alex","sb"],(1,2,3,4,5):{"k3":["2",100,"wer"]}}
    181 # dic["k2"].append("23")
    182 # print(dic)
    183 
    184 
    185 # li = ["alex","wusir","rain"]
    186 # s1 = "".join(li)     #  join 可以把列表变成字符串
    187 # print(s1)
    188 
    189 l1 = "alexwusirrain"
    190 s2 = l1.split("l") # split可以让字符串变成列表
    191 print(s2)
    192 
    193 
    194 # 分别使用while循环,和for循环打印1-2+3-4+5....+99 的结果。
    195 # i = 1
    196 # sum = 0
    197 # while i < 100:
    198 #     if i % 2 == 0:
    199 #         sum -= i
    200 #     else:
    201 #         sum += i
    202 #     i += 1
    203 # print(sum)
    204 
    205 
    206 # sum = 0
    207 # for i in range(1,100):
    208 #     if i % 2 == 0:
    209 #         sum -= i
    210 #     else:
    211 #         sum += i
    212 # print(sum)
    213 
    214 
    215 #  使用range 打印100,99,98,...1,0
    216 # for i in range(100,-1,-1):
    217 #     print(i);
    218 
    219 
    220 # 计算用户输入内容中索引为奇数并且对应的元素为数字的个数(没有则个数为零)
    221 # count = 0
    222 # content = input(">>>")
    223 # for i in range(len(content)):
    224 #     if i % 2 == 1 and content[i].isdigit():
    225 #         count += 1
    226 # print(count)
    227 
    228 """
    229 实现一个整数加法计算器:
    230  如:content = input("请输入内容:") # 如用户输入:5+8+7..(最少输入
    231   两个数相加),然后进行分割在进行计算,将最后的计算结果添
    232   加到字典中(替换None):
    233   dic = {"最终计算结果":None}。
    234 """
    235 dic = {}
    236 content = input("请输入内容:").strip()
    237 content_list = content.split("+")
    238 print(content_list)
    239 sum = 0
    240 for i in content_list:
    241     sum += int(i)
    242     dic["最终计算结果"] = sum
    243 #
    244 print(dic)
    245 
    246 """
    247 查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,
    248 并以"c"结尾的所有元素,并添加到一个新的列表中,最后循环打印出这个新的列表。
    249 """
    250 
    251 # li = ['taibai','alexC','AbC','egon','Ritian','Wusir',' aqc']
    252 # ls1 = []
    253 # for i in li:
    254 #     if (i.strip().startswith("A") or i.strip().startswith("a")) and i.strip().endswith("c"):
    255 #         ls1.append(i.strip())
    256 # for x in ls1:
    257 #     print(x)
    258 # print(ls1)
    259 
    260 
    261 # 第二中方法
    262 # ls2 = []
    263 # for i in li:
    264 #     s = i.strip()
    265 #     if s[0].upper() == "A" and s[-1] == "c":
    266 #         ls2.append(s)
    267 # for x in ls2:
    268 #     print(x)
    269 
    270 
    271 # 补充代码(从已有的代码 继续写):
    272 #     有如下值li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
    273 # 将所有大于 66 的值保存至字典的.第一个key中,将小于 66 的值
    274 # 保存至第二个key的值中。
    275 # li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
    276 # result = {}
    277 # for row in li:
    278 
    279 # li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
    280 # result = {}
    281 # for row in li:
    282 #     if row > 66:
    283 #         if 'k1' not in result:  # 只走一次if 走完 也就是创建完列表之后,就不会再走了  之后就是直接走添加了
    284 #             result['k1'] = []
    285 #         result['k1'].append(row)
    286 #     else:
    287 #         if 'k2' not in result:
    288 #             result['k2'] = []
    289 #         result['k2'].append(row)
    290 # print(result)
    291 
    292 
    293 # li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
    294 # result = {}
    295 # for row in li:
    296 #     if row > 66:
    297 #         if 'k1' not in result:
    298 #             result['k1'] = []
    299 #         else:
    300 #             result['k1'].append(row)
    301 #     else:
    302 #         if 'k2' not in result:
    303 #             result['k2'] = []
    304 #         else:
    305 #             result['k2'].append(row)
    306 # print(result)
    307 # # 输出结果是如下  但是 少了11   和 77
    308 # # {'k2': [22, 33, 44, 55], 'k1': [88, 99, 90]}
    309 
    310 
    311 #另一种方法
    312 
    313 # li = [11, 22, 33, 44, 55, 77, 88, 99, 90]
    314 # result = {}
    315 # for row in li:
    316 #     result.setdefault('k1',[])  # setdefault  有 就什么都不干  没有就添加
    317 #     result.setdefault('k2',[])
    318 #     if row > 66:
    319 #         result['k1'].append(row)
    320 #     else:
    321 #         result['k2'].append(row)
    322 # print(result)
    323 
    324 
    325 """
    326 写程序:模拟公司hr录入员工账号密码的程序。
    327 1),员工的账号密码存储在这种数据类型中
    328 user_list = [
    329     {'username':'barry','password':'1234'},
    330     {'username':'alex','password':'asdf'}
    331     ]
    332     
    333 2),非法字符模板:board = ['张三','李小四','王二麻子']
    334 
    335 3),Hr输入用户名,密码(可持续输入,如果想终止程序,那就在输入用户名
    336   时输入Q或者q退出程序),在Hr输入用户名时,检测此用户名是否有board
    337   里面的非法字符,如果有非法字符,则将非法字符替换成同数量的*(如王二麻子替换成****),
    338   然后添加到user_list中,如果没有非法字符,则直接添加到user_list中,每次添加成功后,打印出刚添加的用户名,密码。
    339 """
    340 
    341 user_list = [
    342     {'username':'barry','password':'1234'},
    343     {'username':'alex','password':'asdf'}
    344     ]
    345 
    346 board = ['张三','李小四','王二麻子']
    347 
    348 while 1:
    349     username = input('用户名:')
    350     if username.upper() == 'Q':
    351         break
    352     password = input('密码:')
    353     for i in board:
    354         if i in username:
    355             username = username.replace(i,"*"*len(i))
    356     user_list.append({'username':username,'password':password})
    357     print({'username':username,'password':password})
    358     print(user_list)

    # 注:本文是根据老男孩课程内容整理而成的,本文仅供个人笔记使用,如果有侵犯,请联系我,我立即撤销。
  • 相关阅读:
    Java在ACM中的应用
    acm->stl
    残缺棋盘--状压DP
    EOJ Monthly 2019.3 A
    【CF1141E】Superhero Battle
    AtCoder Grant Contest 10.F 博弈
    莫比乌斯反演总结
    P2257 YY的GCD
    BZOJ1011 莫比乌斯反演(基础题
    HDU1695 莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/pioneerLee/p/10192718.html
Copyright © 2020-2023  润新知