1030day7作业:登录验证程序:输入8位验证密码、正则:自己定义is_valid_email这个函数,使用下列程序运行得到OK、Python操作数据库

文章目录

  • 一、要求输入的密码,必须是8位,数字字母特殊字符混合,必须有大写和小写字母(两种方法)
  • 二、正则执行代码输出ok
  • 三、使用Python操作mysql,自己建表,表里面有姓名,密码,地址、性别、分数、电话等信息,批量插入50条模拟数据,删除分数第二高的信息
  • 四、完成sql基础练习中的所有习题(先做,不会再对答案来看,练会相关知识点)
  • 五、完成sql进阶中的前11道题(先看答案解释再开始练题,练会相关知识点)

一、要求输入的密码,必须是8位,数字字母特殊字符混合,必须有大写和小写字母(两种方法)

第一种
import re

for i in range(5):
    pwd = input('Please input your password:')
    if len(pwd) < 5 or len(pwd) > 10:
        print('The length of pwd should be 5-10!')
    elif re.match("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).*$", pwd) == None:
        print('密码必须含大小写字母和数字!')
    else:
        print('Password match the requirements!')
        break
else:
    print('You have tried more than 5 times!')
第二种
import re
username = input('请输入')
username = 'DSFDhello!@12eee'

def test(username):
    result = re.findall('([A-Z]+)|([a-z]+)|(\d+)|([^a-zA-Z\d\s_]+)', username)
    l = list(result[0])
    for a in result[1:]:
        for i in range(len(l)):
            if l[i]=='' and a[i]!='':
                l[i] = a[i]
    return any(map(lambda x:x=='',l))==False and len(username)==8
username = '1A34#@q5'
print(test(username))
re.match('^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{5,10}$')

二、正则执行代码输出ok

assert is_valid_email('[email protected]')
assert is_valid_email('[email protected]')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('[email protected]')
print('ok')
自己定义is_valid_email这个函数,使用下列程序运行得到OK

import re
def is_valid_email(email):

    r = re.match('^([\w\.]+)(?=@).*$', email)
    # print(r.groups())
    if r:
        return True
    else:
        return False

assert is_valid_email('[email protected]')
assert is_valid_email('[email protected]')
assert not is_valid_email('bob#example.com')
assert not is_valid_email('[email protected]')
print('ok')

三、使用Python操作mysql,自己建表,表里面有姓名,密码,地址、性别、分数、电话等信息,批量插入50条模拟数据,删除分数第二高的信息

import pymysql

#打开数据库
conn = pymysql.connect(
    user='root',       #用户名
    password='123xxx', #密码
    port=3306,         #端口,默认为3306
    host='127.0.0.1',  #连接名称,默认127.0.0.1
    charset='utf8',    #字符编码
    db='testx'         #数据库名称
                      )#建立连接

#获取游标
cursor = conn.cursor()  #cursor返回一个游标实例对象,其中包含了很多操作数据的方法,比如执行sql语句。

1.查询
sql = 'select * from student'
cursor.execute(sql)
result = cursor.fetchall()  #获取接口
print(result)  #这样就把数据库里面的信息查出来了
conn.close()   #查询完毕,需要关闭连接,释放计算机资源

import random
from faker import Faker
faker=Faker(locale="zh_CN")

2.插入
gender_list =[1,2]
score_list = [''.format(x) for x in range(1,100)]
for i in range(50):
    sql1 = 'insert into student (username,pass_word,address,gender,score,phone_number,status) values("{}","{}","{}","{}","{}","{}")'.format(faker.name(),faker.password(),faker.address(),random.choice(gender_list),random.choice(score_list),faker.phone_number(),1)
    result1 = cursor.execute(sql1)
    print(result1)
conn.commit()  #事务的提交
conn.close()  #查询完毕,需要关闭连接,释放计算机资源,关闭查询游

3.删除成绩第二高的
sql = "select score from student order by limit 1 offset 1"
mycursor.execute(sql)
conn.commit()
print(mycursor.rowcount, "record(s) deleted")

四、完成sql基础练习中的所有习题(先做,不会再对答案来看,练会相关知识点)

五、完成sql进阶中的前11道题(先看答案解释再开始练题,练会相关知识点)

你可能感兴趣的:(python,正则表达式,数据库)