日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python随机生成n个满足如下要求的手机号码

發布時間:2023/12/29 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python随机生成n个满足如下要求的手机号码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python練習題:隨機生成n個滿足如下要求的手機號碼:

  • 手機號碼必須是13、15、17、18開頭
  • 手機號碼相同數字出現的次數不能大于5次
  • 任意兩個手機號不能重復
  • 生成的手機號碼需保存在列表tels中,并且按照升序進行排列
  • import random n = int(input("請輸入n值:")) #n就是要生成的手機號個數 tels = [] begin = [3,5,7,8] i = 1 #計數while i <= n:last9 = [random.choice(range(10)) for _ in range(9)] #剩下的九個數字tel = [1] + [random.choice(begin)] + last9 #按順序生成11個數字,儲存在tel列表里if tel not in tels: #將不重復的tel存進tels列表中tels.append(tel) i += 1for m in tel:if tel.count(m) > 5: #判斷有無重復出現5次以上的數字 tels.remove(tel) #若有,從tels列表里刪除該teli -= 1 #刪除后計數減一,繼續返回循環A = '' #定義一個空串方便將列表形式的11個獨立數字合并為一個字符串 for x in range(0, len(tels)):for s in tels[x]:a = str(s)A = A + atels[x] = A #按順序存進題目要求的tels列表A = '' #前一個合并完之后,A清零進行下一個字符串的處理tels.sort() #升序排序 print(tels) import randomn = int(input("請輸入n:")) starts = [13, 15, 17, 18] # 前兩位 tels = [] # 保存生成的手機號碼 # 遍歷 while True:tel = "" # 保存每一次生成的手機號tel += str(starts[random.randint(0, 3)]) # 隨機選擇前兩位tmp = [] # 隨機選擇數字序列for i in range(10):if str(i) in tel:tmp = tmp + [i] * 3else:tmp = tmp + [i] * 4random.shuffle(tmp) #打亂順序for _ in range(9): # 隨機從選擇序列中i = random.randint(0, len(tmp) - 1)tel += str(tmp[i])del tmp[i]if tel not in tels: # 去除重復tels.append(tel)if len(tels) > n:# 生成n個數后跳出循環breakprint(tels)

    ?以上是學校python入門課的一道小題,附自己琢磨出的解決辦法(第一個)和老師給的代碼(第二個)。自己的方法更多側重每一個數字生成和處理的過程,老師的更偏向于建立一個大的數集,然后從中取數組成電話號,私以為各有所長所短。但是黑貓白貓,抓到耗子就算好貓!

    如有需要供參考,立個小博客記錄hhhhh

    歡迎批評指正!!

    總結

    以上是生活随笔為你收集整理的Python随机生成n个满足如下要求的手机号码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。