python面试总结

1.python怎么连接MySQL数据库?

导入pymysql模块

步骤:

1)建立与数据库的连接

2)得到游标

3)通过游标执行sql语句

4)获取数据库的内容

5)进行数据库的查看

6)关闭游标,数据库

# 导入模块
import pymysql

# 建立连接
conn = pymysql.connect(
    user = 'root',    # 用户名
    password = '123456',    # 密码
    host = 'localhost',    # 指定访问的服务器,本地localhost,远程服务器写ip地址
    database = 'record',    # 数据库名字
    port = 3306,            # 指定端口号
    charset = 'utf-8'        # 数据库编码方式  
)
# 使用cursor()方法获取游标
cursor = db.cursor()
# 使用execute方法执行sql语句
cursor.execute("select version()")
# 使用fetchone()方法获取一条数据
data = cursor.fetchone()
# 关闭数据库连接
db.close()

2.python怎么获取当前系统时间?

1)导入datetime模块

import datetime

current_time = datetime.datetime.now()
print("current_time: " + str(current_time))

2)导入time模块

import time
start = time.strftime("%Y-%m-%d- %H:%M:%S")
print(start)

3.python中的数据类型有哪些?

int整型、float浮点型、complex复数、string字符串、Boolean布尔型

list列表、tuple元组、set集合、dictionnary字典

4.python中怎么设置定时任务?

1)死循环中sleep(轮询,阻塞)

在死循环内放入执行的任务,sleep一段时间之后执行

import time

def func():
    print("func executed")

def timer():
    while True:
        func()
        time.sleep(5)   #每隔5秒执行一次函数

timer()

在循环内加入时间判断逻辑,可以执行定时任务

date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
if date == "2022-6-17 22:34":
func()

2)threading模块的Timer方法

threading模块提供了一个定时器触发的函数Timer是一个非阻塞函数,多线程实现非阻塞,缺点是只能等待固定的时间,然后执行一次任务。

from threading import Timer

def func(para):
    print(para)
    print("func executed")

def timer(delay):
    hit = "timer called function"
    t = Timer(delay,func,(hit))    # 三个参数分别是:延迟时间 调用函数 (传入调用函数的参数(必须是tuple))
    t.start()
timer(3.0)

3)sched模块

python内置模块sched,它提供延时调度的机制,每次执行任务都必须写入一个调度。

import sched
import time

scheduler = sched.scheduler(time.time,time.sleep)   # 两个参数分别为:返回时间戳的函数,默认是time.time ,
                                                                    # 定时未到达之前执行何种函数的阻塞,默认是time.sleep
def func(para):
    print(para)
    print("func executed")

def timer(delay):
    hit = "timer called function"
    scheduler.enter(delay,0,func,(hit))     # 四个参数分别为 延迟时间 优先级(如果调度包含多个任务,需指定优先级) 调用函数 传入参数
    scheduler.run()
timer(3)

4)第三方库APScheduler定时框架(Advanced Python Scheduler)

APScheduler是一个强大的python定时框架,它提供了基于日期、固定时间间隔、以及类Linux crontab类型的定时任务,并支持持久化和以daemon方式执行任务。

后续内容待更新。。。

5.python中列表和元组的区别?

最主要的区别是,列表是可变的,元组是不可变的

可以修改列表的值,但是不能修改元组的值

列表是动态的,长度大小不固定,可以做增删改操作

元组是静态的,长度在初始化的时候就已经确定不能更改,无法做增删改操作。

6.python中json和str类型转换

1) str转换json

str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致

2)python对象转换为json字符串通过json.dumps

import json
str = '{"name": "苏", "age": 18}'
j = json.loads(str)
print(j)
j = json.dumps(j)
print(type(j))

3)json字符串转换成python对象通过json.loads

import json
str = '{"name": "苏", "age": 18}'
j = json.loads(str)
print(j)
print(type(j))

4) eval函数可以把列表、元组、字典与字符串相互转换

a = "[[1,2], [3,4]]"
b = eval(a)
print(type(b))    # 列表

a = "{1: 'a', 2: 'b'}"
b = eval(a)
print(type(b))    # 字典

a = "([1,2], [3,4], [5,6], (9,0))"
b = eval(a)
print(type(b))    # 元组

7.python中对excel文件的操作

1)xlrd模块读取Excel

2)xlwt模块写入Excel

3)xlutils模块修改Excel

4)openpyxl读取、写入、修改Excel

在openpyxl中,有三个概念:Workbooks,Sheets,Cells

Workbooks是一个excel工作表,

Sheet是工作表中的一张表页,

Cell是一个简单的表格,

步骤就是打开Workbooks,定位Sheets,操作Cells

8.分析进程、线程、多线程

进程:是一个动态概念,当启动一个应用的时候,就启动了一个进程,关闭应用,,进程结束。

线程:是组成进程的基本单位,一个进程由一个或多个线程组成,线程与进程都是动态的。

区别:

1)包含关系,进程中有线程。

2)进程拥有独立的运行内存空间,每个进程所占内存空间都是独立的,互不干扰。

3)线程是共享内存空间的,但每个线程的执行都是独立的。

4)单独的线程无法运行,需要由进程控制。

多线程:是指在一个进程中,多个线程同时执行,但并不是真正意义上的同时执行。

系统会为每个线程分配CPU资源,在某个时间段内CPU会被一个线程占用,因此不同时间段是由不同线程占用的,只是由于CPU运行速度快,难以察觉线程在交替运行,感觉在同时执行。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值