python練習題

1.隨機生成多少位的密碼保存在文本內。git

import random,string
f = open('C:\\Users\\Administrator\\Desktop\\new.txt', 'a+')
# a  追加寫,不會請求,打開的文件不存在的話,也會幫你新建一個文件r+  讀寫模式
# w+   寫讀模式
# a+    追加讀模式
upperStr = string.ascii_uppercase  #string 大寫字母
lowerStr = string.ascii_lowercase    #string 小寫字母
digitStr = string.digits #string 數字
specialStr = string.punctuation   #string 特殊數字
allStr = upperStr+lowerStr+digitStr+specialStr #產生密碼所須要的字符集
f.seek(0)#把指針移動到第一位
all_password = []
#這個函數是無限循環產生對應的數
def pw1():
    while True:  #True 表示無限循環
        pw = ''.join(random.sample("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_.1234567890!@#$%^&*()+=-><:",random.randint(8, 16)))
    #隨機生成8到16位的字符,能夠把須要的數字所有填寫在裏面
        if pw not in all_password:
            not(f.write(pw +'\n'))#寫入到文件內
Num = 1# 輸入要產生密碼的次數:
def pws():
    for i in range(Num):
        pwdLen = random.randint(6,11)
    #  print(pwdLen) # 隨機生成密碼的長度
        pwd1 = random.choice(upperStr) + random.choice(digitStr) + random.choice(lowerStr) + random.choice(specialStr)
        #隨機密碼必須包含的四個字符:大寫字母,小寫字母,數字,特殊字符
        pwdRan = random.sample(allStr,pwdLen-4) #除去4個字符外,隨機從字符集中取出剩下所須要的字符
        pwd2 = "".join(pwdRan)#  並將該List轉化爲字符串
        pwd = pwd1+pwd2 # 最終生成的隨機密碼
        f.write(pwd+'\n')
        f.flush()
    f.close()
pws()
View Code

2.隨機生成雙色球json

import random
def seq():
    qiu = []
    while True:
        hong = random.randint(1,33) #產生一個隨機紅球
        if hong in qiu:
            continue #跳過本次循環
        qiu.append(hong) #把紅色號碼添加到列表
        if len(qiu)==6:
            break
    qiu.sort()
    lan = random.randint(1,16) #產生一個隨機籃球
    s = ""
    for i in qiu:
        s = s+"%02d " %i #02d表示是2位數的整數,個數自動補0
    print(s+"+ "+"%02d" %lan)
seq()
View Code

3.連續輸入幾回用戶名或密碼判斷app

import datetime
def xunhan():
    for i in range(3):
        username = input('請輸入你的用戶名:').strip()
        password = input('請輸入你的密碼:').strip()#strip 去除爲空的狀況
        if username=='xiaoming' and password == '123456':
            print('歡迎%s登錄,今天的日期是%s'%(username,datetime.datetime.today()))
            break
        elif username=='' or password =='':
            print('帳號和密碼都不能爲空!')
        else:
            print('帳號/密碼錯誤')
    else:
        print('錯誤次數過多')
def xunhuan1():
    count = 0
    while count<3:
        count += 1
        username = input('請輸入你的用戶名:').strip()
        password = input('請輸入你的密碼:').strip()
        if username=='tanailing' and password == '123456':
            print('歡迎%s登錄,今天的日期是%s'%(username,datetime.datetime.today()))
            break
        elif username=='' or password =='':
            print('帳號和密碼都不能爲空!')
        else:
            print('帳號/密碼錯誤')
    else:
        print('錯誤次數過多')
View Code

4.註冊:帳號和密碼存在文件裏面,從文件裏面讀取數據判斷是否已經存在dom

f = open('C:\\Users\\Administrator\\Desktop\\new.txt','a+')
f.seek(0)
res = f.read()
def zhuce():
    all_user_name = [] #存放全部的用戶名
    for r in res.split('\n'):  # ['username,123456', 'username2,abc123']
        #'username,123456' [username, 123456]
        username = r.split(',')[0]
        all_user_name.append(username)
    for i in range(3):
        username = input('username:').strip()
        pwd = input('pwd:').strip()
        cpwd = input('cpwd:').strip()
        if not (len(username)>=6 and len(username)<=20):
        # if len(username)<=6 and len(username)>=20:
            print('用戶名長度不合法')
        elif not (len(pwd)>=8 and len(pwd)<=20):
            print('密碼長度不合法')
        elif pwd!=cpwd:
            print('兩次輸入的密碼不一致')
        elif username in all_user_name:
            print('用戶名已經被註冊')
        else:
            user_info = '%s,%s\n'%(username,pwd)
            f.write(user_info)
            print('註冊成功!')
            break
    else:
        print('錯誤次數過多')
    f.close()
zhuce()
註冊

5.商品管理(添加,刪除,修改,查詢)iphone

"""做業:
    一、實現一個商品管理的程序。
        #輸出1,添加商品 二、刪除商品 三、查看商品
        添加商品:
            商品的名稱:xxx  商品若是已經存在的話,提示商品商品已經存在
            商品的價格:xxxx 數量只能爲大於0的整數
            商品的數量:xxx,數量只能爲大於0的整數
        二、刪除商品:
            輸入商品名稱:
                iphone 若是輸入的商品名稱不存在,要提示不存在
        三、查看商品信息:
             輸入商品名稱:
                iphone:
                    價格:xxx
                    數量是:xxx
                all:
                    print出全部的商品信息 '''
import json
def get_file_content():
    with open(FILENAME,encoding='utf-8') as f :
        content = f.read()
        if len(content)>0:
            res = json.loads(content)
        else:
            res = {}
    return res
def write_file_content(dic):
    with open(FILENAME,'w',encoding='utf-8') as fw:
        json.dump(dic,fw,indent=4,ensure_ascii=False)
def check_digit(st:str):
    if st.isdigit():
        st = int(st)
        if st > 0:
            return st
        else:
            return 0
    else:
        return 0
def add_product():
    product_name = input('請輸入商品名稱:').strip()
    count = input('請輸入商品數量:').strip()
    price = input('請輸入商品價格:').strip()
    all_products = get_file_content()
    if check_digit(count) == 0:
        print('數量輸入不合法')
    elif check_digit(price) == 0:
        print('價格輸入不合法')
    elif product_name in all_products:
        print('商品已經存在')
    else:
        all_products[product_name] = {"count":int(count), "price":int(price)}
        write_file_content(all_products)
        print('添加成功!')
def show_product():
    product_name = input('請輸入要查詢的商品名稱:').strip()
    all_products = get_file_content()
    if product_name=='all':
        print(all_products)
    elif product_name not in all_products:
        print('商品不存在')
    else:
        print(all_products.get(product_name))
def del_product():
    product_name = input('請輸入要刪除的商品名稱:').strip()
    all_products = get_file_content()
    if product_name in all_products:
        all_products.pop(product_name)
        print('刪除成功')
        write_file_content(all_products)
    else:
        print('商品不存在')
choice = input('請輸入你的選擇:\n 一、添加商品 二、刪除商品 三、查看商品信息:')
if choice == "1":
    add_product()
elif choice == "2":
    del_product()
elif choice == "3":
    show_product()
else:
    print('輸入錯誤,請從新輸入!')
商品添加

 6.把excel內的文字轉換爲拼音ide

例如把「xxxx.xls中的漢字人名轉成用戶名,寫到後面的單元格中,excel在羣文件函數

 例如:中國-王小明 : zg_wangxiaoming
測試

import xpinyin,xlrd,string
from xlutils.copy import copy
book = xlrd.open_workbook(r'xxxxxxxxx.xls')
sheet = book.sheet_by_index(0)
p = xpinyin.Pinyin()
new_book = copy(book)  # 拷貝一分原來的Excel
new_sheet = new_book.get_sheet(0)  # 獲取sheet頁
for i in range(1,sheet.nrows):
    name = sheet.row_values(i)[0]
    name_pinyin = p.get_pinyin(name,'')
    name_pinyin = name_pinyin.replace('wangluo','wl').replace('xianchang','xc').replace('cengke','ck')
    for n in name_pinyin:
        if n not in string.ascii_lowercase:#判斷若是不是字母的話,就替換
            res = name_pinyin.replace(n,'_')
            #ck__liuwei
            xhx_count = res.count('_')#取下劃線的個數
            if xhx_count>1:#判斷下劃線若是大於1,就把多個下劃線替換成一個下劃線
                res = res.replace('_'*xhx_count,'_')
    new_sheet.write(i,1,res)#
new_book.save(r'xxxxxxxx')
轉換拼音

 7.刪除空文件spa

import os
for cur_dirs,dirs,files in os.walk(r"F:\jmter測試數據"):
    print(cur_dirs,dirs,files) #三個值分別表明:文件地址,文件夾,文件
    if len(files)==0 and len(dirs)==0:
       #判斷文件和文件夾是否爲空
        os.rmdir(cur_dirs)#這裏刪除不能直接用os.remove,會直接報權限問題
View Code

 8.循環練習題3d

import random
num = random.randint(1,100)#隨機獲取之間的數字
print(num)
count = 0
while count<3:#定義循環的次數
    count+=1
    guess = int(input("請輸入一個數字:"))
    if guess>num:
        print("大了")
    elif guess == num:
        print("猜對了")
        break #當猜對了這裏就直接結束整個循環
        #若是是「continue」 就是結束當前的循環,繼續執行下一個循環
    else:
        print("小了")

else:
    print("猜的次數過多,遊戲結束")
猜數字遊戲
相關文章
相關標籤/搜索