文章目录
- 1.Python 有哪些数据类型?并举例
- 2.列表和元组的区别?
- 3.请写出一段Python代码实现删除一个list里面的重复元素
- 4.单引号,双引号,三引号的区别
- 5.看代码写结果
- 6.请问上题中def func(a,b=[]): 这种写法有什么陷阱
- 7.re的match和search区别?
- 8.re 中 .* 与 .*? 有何区别
- 9.re 匹配邮箱代码 格式: 51245546@qq.com |或者| kkbig@163.com
- 10.列表元素去重
- 11.怎么将列表转为字符转
- 12.怎么让字符的首字母大写,其他字母小写
- 13.怎么让列表按相反顺序排列
- 14.把字符串里面的数字全部替换成大写A,正则替换:re.sub
- 15.怎么给字典中不存在的key指定默认值
- 16.高级函数求1~100的和
- 17.怎么快速启动浏览器打开指定网站并搜索
- 18.私有属性,私有属性安全吗?
- 19.random有关的方法
- 20.集合
- 21.创建文件夹
- 22.执行命令,获取它输出的值
- 23.遍历
- 23.打包文件成为exe
- 24. Sql 语句编写
1.Python 有哪些数据类型?并举例
字符串,元组,字典,集合,列表,浮点数,布尔数,整型
2.列表和元组的区别?
列表属于可变数据类型元组属于不可变数据类型
列表为方括号元组为园括号
3.请写出一段Python代码实现删除一个list里面的重复元素
方法一
a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
a=list(set(a))
print (a)
结果:[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]
方法二
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a) #构建字典
print(b)
a=list(b.keys()) #字典的键不能重复
print(a)
结果:
{1: None, 2: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 0: None}
[1, 2, 4, 5, 6, 7, 8, 9, 0]
4.单引号,双引号,三引号的区别
单引号和双引号可以用来表示一个字符串
三引号的作用是:注释 还可以作为换行
5.看代码写结果
def func(a,b=[]):
b.append(a)
return b
v1 = func(1)
print(v1)
v2 = func(2,[10,20])
print(v2)
v3 = func(3)
print(v3)
运行结果:
[1]
[10, 20, 2]
[1, 3]
6.请问上题中def func(a,b=[]): 这种写法有什么陷阱
函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第三次执行还是用第一次执行的时候实例化的地址存储,所以第一和第三次执行的结果就是相同的,想每次执行只输出当前传入参数 ,默认参数应该设置为None
7.re的match和search区别?
== match ==:如果字符串开头有0个或多个字符,符合正则表达式返回匹配的对象如果不符合返回none
== search ==:扫描整个字符串有匹配的返回匹配对象没有返回none
8.re 中 .* 与 .*? 有何区别
.*贪婪模式匹配一个或多个
.*?非贪婪模式匹配一个
9.re 匹配邮箱代码 格式: 51245546@qq.com |或者| kkbig@163.com
[1-9]\d+@qq.com
[a-z]+@163.com
10.列表元素去重
方法一
a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
a=list(set(a))
print (a)
结果:
[0, 1, 2, 3, 4, 5, 7, 8, 9, 10]
方法二
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)
print(b)
a=list(b.keys())
print (a)
结果:
{1: None, 2: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 0: None}
[1, 2, 4, 5, 6, 7, 8, 9, 0]
11.怎么将列表转为字符转
当这里面有不能凭借的东西,比如元素,join就用不了
l = [1,2]
print(''.join(l)) #报错
l = [False,None]
print(','.join(l)) #报错
l = str([False,None])
print(l[5:]) #可以
12.怎么让字符的首字母大写,其他字母小写
upper()
lower()
title()
swapcase()
import string
print(string.capwords('hello world'))
13.怎么让列表按相反顺序排列
方法一
s = [1,5,2,3]
s.reverse()
print(s)
结果:[3, 2, 5, 1]
方法二
s = [1,5,2,3]
print(s[::-1])
结果:[3, 2, 5, 1]
14.把字符串里面的数字全部替换成大写A,正则替换:re.sub
import re
strs = 'dgfsgsfg3214sfgsdh232dfg535'
result = re.sub('\d+?','A',strs)
print(result)
结果:dgfsgsfgAAAAsfgsdhAAAdfgAAA
15.怎么给字典中不存在的key指定默认值
dicts = {'hello':12}
print(dicts.get('hellos','not found'))
16.高级函数求1~100的和
filter() sorted()
from functools import reduce
print(reduce(lambda x,y:x+y,range(101)))
结果:5050
17.怎么快速启动浏览器打开指定网站并搜索
from selenium import webdriver
from selenium.webdriver.common.by import By
dr = webdriver.Chrome('D:\\an\Lib\site-packages\\chromedriver.exe') #指定驱动位置
dr.get('https://www.baidu.com/')
dr.find_element(by=By.XPATH,value='//*[@id="kw"]').send_keys('python') #F12打开,path找到XPATH,value后边跟XPATH规则
dr.find_element(by=By.XPATH,value='//*[@id="su"]').click() #定位按钮,点击搜索
18.私有属性,私有属性安全吗?
class Man:
pass
class Student(Man):
pass
def __init__(self,name):
self.__name = name #self._name = name:变成一个杠,我不希望你去在外边调用这个属性,但是你在外边可以调用,加这个杠的意思就是写这个类的程序员不希望你在外边调用
def get_name(self):
print(self.__name)
stu = Student('张三') #实例化
stu.get_name() #可以打印
stu._Student__name = 'hello' #实际上在外边起来一个别名
print(stu._Student__name)
结果:
张三
hello
issubclass() #判断一个类是否十另一个类的子类
isinstance() #判断这个对象
print(issubclass(Student,Man))
stu = Student() #先实例化
print(isinstance(stu,Man)) #判断stu是不是Man的子
19.random有关的方法
import random
random.shuffle()
random.randrange()
random.choice()
random.sample()
random.random()
print(random.randint(1,100))
20.集合
set1 = {1,2,3}
set2 = {2,3,4}
print(set1|set2)
print(set1&set2) #与字符
print(set1-set2)
print(set1^set2)
21.创建文件夹
import os
os.system('mkdir user')
22.执行命令,获取它输出的值
import subprocess
cmd = 'mkdir bbb'
r = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) #stdout=subprocess.PIPE将cmd里面的输出指向管道
out = r.communicate()[0] #指定完就可以打印出来
print(out)
23.遍历
ord ()
chr ()
for i in range(1,200):
print(chr(i))
23.打包文件成为exe
pip install pyinstaiier
pyinstaller -F xxxxx文件名
24. Sql 语句编写
第一张表 表名 CompanyNameTable
第二张表 表名 UserNameTable
第三张表 表名 UserPayTable
要求更新第一张表isvip (是否是会员)的状态 (0是非会员 1是 会员).
提示: 第三表UserPayTable的EndDate大于当前时间的公司认为是会员。
方法一
UPDATE companynametable
SET isvip = '1'
WHERE
cbsid IN (
SELECT
cbsid
FROM
usernametable
WHERE
user_name IN (
SELECT
username
FROM
userpaytable
WHERE
EndDate > now()
)
)
思路
SELECT
*
FROM
companynametable
WHERE
cbsid IN (
SELECT
cbsid
FROM
usernametable
WHERE
user_name IN (
SELECT
username
FROM
userpaytable
WHERE
EndDate > now()
)
)
方法二
UPDATE companynametable
SET isvip = '1'
WHERE
cbsid IN (select * from(
SELECT
cbsid
FROM
companynametable AS cp
JOIN usernametable AS ut USING (cbsid)
INNER JOIN userpaytable AS up ON ut.user_name = up.UserName
WHERE
up.enddate > now()
)as AA)
思路
-- 嵌套子查询,方法一
select now()
select * from companynametable where cbsid in
select * from usrnametable where user_name in
SELECT username from userpaytable where enddate>now()
update companynametable set isvip='1'
select cbsid from usernametable where user_name in(select username from userpaytable where EndDate > now())
-- 三表联查,方法二
update companynametable set isvip='1' where cbsid in
-- 先用select * from 先查一下,然后才能套
select cbsid from companynametable as cp join usernametable as ut using(cbsid) INNER JOIN userpaytable as up on ut.user_name=up.UserName
where up.enddate>now()
-- 方法一三表联查
select * from companynametable join usernametable using(cbsid)
select * from companynametable as cp join usernametable as ut using(cbsid) INNER JOIN userpaytable as up on ut.user_name=up.UserName
select cbsid from companynametable as cp join usernametable as ut using(cbsid) INNER JOIN userpaytable as up on ut.user_name=up.UserName where up.enddate>now()