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)
# 注:本文是根据老男孩课程内容整理而成的,本文仅供个人笔记使用,如果有侵犯,请联系我,我立即撤销。