1. 程式人生 > >python 基礎複習 09 之基礎函式

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)

# 注:本文是根據老男孩課程內容整理而成的,本文僅供個人筆記使用,如果有侵犯,請聯絡我,我立即撤銷。