文章目录
前言
本文是python基础语法和语法练习的一些记录。
Python的基础知识
标识符/命名规范/变量/输入输出
标识符
- 变量名、函数名、类名的统称
命名规范:
- 只能包含字母、数字、下划线,并且不能以数字开头,不能与系统关键字、模块名相同;
- 严格区分大小写
- 尽量使用有意义的英文单词
- 多个单词之间使用下划线连接,如student_age = 20
变量
- 声明:取个名字,给一个值,通常在运算符两边夹空格,提高代码可读性,如age = 20
输入输出
- 输入:input([‘message’])
接收外部输入,无论外部输入哪种数据类型的值,都统一作为字符串处理
代码遇到input函数会暂停,直到敲入回车键后代码继续运行
message为可选的参数,一般用于输入的提示
在控制台输入时,需要夹引号,不然会报语法错误 - 输出:print(value1,value2,…,sep=’ ‘,end=’\n’,file=sys.stdout)
value1:表示要输出的内容,可以同时输出多个对象,中间使用逗号隔开
sep:seperate,在结果中多个对象值的分隔符,默认为空格
end:表示输出完成后的结束符,默认为换行符(\n)
file:将内容输出到指定文件
数据类型及其转换
数据类型
-
type(obj),返回对象的类型
-
布尔型:bool
只有两个值:True、False,声明后不能被改变
bool(obj),根据对象的值返回布尔值
0、None、空字符、空列表、空字典,是返回False -
整型:int
声明后不能被改变 -
浮点型:float
声明后不能被改变 -
字符串:str,包含在引号之间的内容(可以是单引号、双引号、三引号)
声明后不能被改变
单引号、双引号不能跨行写,非得跨行的话,就输入一个\转义字符
tips:如果三引号单独站一排,表示注释;如果三引号在等号右边,表示字符串 -
元组:tuple
声明后不能被改变
包含在()之间的内容,每一个元素之间使用逗号分隔,元组中的元素可以是任意数据类型
声明:tup = (1,2,3,4) -
列表:
list,包含在[]之间的内容,每一个元素之间使用逗号分隔,列表中的元素可以是任意数据类型
声明:li = [1,2,1.2,‘abcd’,True,[1,2,3]] -
字典:
dict,包含在{}之间的内容,每一个元素为一个键值对(key:value),键只能为不可变的数据类型(int、float、布尔型、字符串、元组),值可以为任意数据类型
声明:dic = {‘name’:‘lucy’,1:[1,2,3],1.8:{},True:‘abc’,(1,2):1000}
-
集合(了解):
set,包括在{}之间的内容,每一个元素之间使用逗号分隔,集合中的元素可以是任意数据类型
集合中的元素不会重复,常用集合来去重 -
不同数据类型例子:
数据类型
数据类型转换
-
bool(obj),根据对象的值返回布尔值
0、None、空字符、空列表、空字典,返回False -
int(obj),将对象转换为整型
布尔型–>整型:
True -----> 1
False ---- > 0
浮点型---->整型:
做截取(取整),会损失精度
字符串 ------> 整型:
字符串中不能包含任何非数字字符 -
float(obj),将对象转换为浮点型
布尔型----->浮点型:
True ----- > 1.0
False -----> 0.0
整型 ------ > 浮点型:
字符串 ----> 浮点型:
字符串中不能包含小数点以外的任何非数字字符 -
str(obj),将对象转换为字符串
-
例子:字符串、整型、浮点型、布尔型相互转换
-
tuple(obj),将对象转换为元组
字符串----> 元组
列表----> 元组
字典----> 元组:元组中只有键
集合不能转元组
-
list(obj),将对象转换为列表
字符串 ----> 列表
元组 ----> 列表
集合 ----> 列表
字典 ----> 列表,列表中只有键
数据结构
数据结构
- 通用方法
len(obj),返回对象(字符串、列表、元组、字典、集合)中的元素个数
sum(obj),返回对象(列表、元组、字典、集合)中所有元素的和
max(obj),返回对象(列表、元组、字典、集合、字符串)中的最大元素
zip(obj1,obj2,…),将多个对象打包
del obj,删除指定对象 - 字符串方法
语法:字符串.方法名([参数])
count(sub[, start[, end]),返回字符串中指定位置范围内指定子字符串的数量;sub,表示待查找的子字符串,start,表示开始位置索引,索引是从0开始的,end,表示结束位置的索引
index(sub[, start[, end]]),返回子字符串在字符串中的索引;如果有多个相同的子字符串则返回第一个的索引;如果不存在指定的子字符串,则报错
upper(),将字符串转换为大写
lower(),将字符串转换为小写
title(),将每个单词的首字母转换为大写
startswith(sub),检查是否以指定的子字符串开始,如果是返回True,否则返回False
endswith(sub),检查是否以指定的子字符串结尾,如果是返回True,否则返回False
replace(old,new[,count]),替换,可以指定替换次数(默认全部替换)
strip(),去除字符串前后的空字符
split([char]),将字符串使用指定的字符(如果不指定则默认使用空字符分割)分割,返回一个列表,属于字符串和列表的相互转化
join(iterable),将可迭代对象转换为字符串,数字不可以用这个方法isdecimal(),判断字符串是否由数字组成,如果是返回True,否则返回False
isalpha(),判断字符串是否由字母组成,如果是返回True,否则返回False
isupper(),判断字符串是否全部为大写,如果是返回True,否则返回False
islower(),判断字符串是否全部为小写,如果是返回True,否则返回False
upper().isupper()
lower().islower()
isalnum(),判断字符串是否由字母或者数字组成,如果是返回True,否则返回False
isalpha(), 判断字符串是否全由字母组成,如果是返回True,否则返回False
isdigit(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
isdecimal(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
isnumeric(), 判断字符串是否全由数字组成,如果是返回True,否则返回False
rjust(length,‘xx’),在字符串左边拼接xx,总长度为length
ljust(length,‘xx’),在字符串右边拼接xx,总长度为length
encode(),编码
decode(),解码 - 元组方法
语法:元组.方法名([参数])
index(obj),返回指定元素在元组中的索引,如果指定元素不存在则报错,ValueError: tuple.index(x): x not in tuple
count(obj),返回指定元素在元组中的数量,如果指定元素不存在则返回0 - 列表方法
语法:列表.方法名([参数])
index(obj),返回指定元素在列表中的索引,如果指定元素不存在则报错
count(obj),返回指定元素在列表中的数量,如果指定元素不存在则返回0
clear(),清空列表
remove(obj),删除列表中的指定元素
如果指定元素不存在则报错
如果存在多个相同的元素,则删除索引最小的
pop([index]),根据索引删除列表元素(如果不指定索引则删除最后一个元素)
apend([obj]),在列表的末尾添加一个元素(可以是任意数据类型)
insert(index,obj),在列表的指定索引处插入一个元素
extend(iterable),将一个可迭代对象的元素拆开,再分别添加到列表
sort([reverse=True]),排序,默认为升序
reverse(),将列表反向
copy(),复制列表(在内存中地址不同) - 字典方法
语法:字典.方法名([参数])
pop(key),删除指定的键
popitem(),随机删除键值对
get(key),返回指定键的值,如果键不存在返回None
values(),以dict_values格式返回字典中的所有值
keys(),以dict_keys格式返回字典中的所有键
update(obj),将指定对象更新到字典中
setdefault(key,default_value),返回指定键key的值,如果这个键不存在则新增键值(key:default_value)对并且返回default_value
fromkeys(iterable),从可迭代对象快速创建一个字典 - 可迭代对象
内部包含__iter__()的对象(字符串、元组、列表、字典、集合),数字无
支持循环遍历(for)
序列
数据类型:字符串、元组、列表
操作类型:
索引,可以通过索引访问序列中的元素(索引范围:[0,len(obj)-1])
语法:obj[index]
切片,通过索引返回对象的子元素片段
语法:
start,开始位置,如果省略表示从第一个位置开始
end,表示结束位置,实际返回的是end-1位置上的元素,如果省略表示取到最后一个元素
step,表示步长(每间隔多少元素取一个),省略表示1
非序列
字典
集合
打印格式化
格式化
- 第一种方式:占位符
语法:%[-w.p]type
-,表示左对齐,默认是右对齐
w,宽度
p,表示精度
type,表示数据类型(d-整数,f-浮点数,s-字符串)
例1:
%5.2f,表示一个浮点数,宽度为5,精确到小数点后第2位
%-5s,表示一个字符串,宽度为5,左对齐
例2:
输入一个用户的姓名,手机号,按格式输出用户信息:姓名–xxxx;手机号—xxxxxxxx
例3:
输入学生的姓名、成绩,按以下格式输出每个学生的成绩信息、平均成绩(保留2位小数)
- 第二种方式:format
语法:‘{[:w.pf]}’.format(var)
w,宽度
pf,表示浮点数的精度
无-,默认左对齐
例:
- 第三种方式:f-string
语法:f’{var[:w.pf]}’
pf,表示浮点数的精度
w,宽度
f’{name_1:7}\t{score_1}\n{name_2:7}\t{score_2}\n平均成绩\t{avg_score:.2f}’
例:
运算符
运算符
- 算术运算符
+,加法,返回两个对象的和,3+4 = 7,如果运算的两个对象为字符串,则做字符串的拼接,如’abc’+‘efg’ = ‘abcdefg’
-,减法,返回两个对象的差,3-4 = -1
*,乘法,返回两个对象乘积,3*4 = 12,如果运算的对象为1个字符串,1个数字,则复制该字符串n次,如’a’*5 = ‘aaaaa’
/,除法,返回两个对象的商,5/2 = 2.5
//,整除,返回小于等于两个对象的商的最大整数,例如5//2 = 2,5//-2 = -3
**,幂运算
3**2 = 9
3**-2 = 1/9 = 0.111111
%,求余,返回两个对象相除的余数,公式:r = a%b = a-b*(a//b)
例:
- 赋值运算符
=,普通赋值运算符,a = 1
+=,如a += b相当于a = a+b
-=,如a -= b相当于a = a-b
*=,如a *= b相当于a = a*b
/=,如a /= b相当于a = a/b
//=,如a //= b相当于a = a//b
**=,如a **= b相当于a = a**b
%=,如a %= b相当于a = a%b
例:
- 比较运算符
运算结果为布尔值:True、False
==,比较两个对象的值是否相等
>
>=
<
<=
!= - 逻辑运算符
运算对象为布尔表达式,运算结果为布尔值
and,参与运算的对象结果都为True,则整体表达式结果为True,否则为False
or,参与运算的对象只要有任意一个结果True,则整体表达式结果为True,如果都为False则整体为False
not,参与运算的对象结果为True,则整体结果为False;参与运算的对象结果为False,则整体结果为True; - 成员运算符
检查在指定对象中是否包含指定的成员,包含则返回True,否则返回False
in
not in
例:
‘a’ in ‘abc’ ,返回True
‘d’ not in ‘abc’ ,返回True - 身份运算符
检查两个对象是否为同一个引用(是否指向同一个内存地址),如果是返回True,否则返回False
id(obj),返回引用的地址
is
not is
- 三元运算符
语法:value1 if 布尔表达式 else value2,如果布尔表达式结果为True,返回value1;否则返回value2
- 位运算符
控制结构
控制结构
- 分支语句(if)
单分支
描述了程序在布尔表达式结果为True的情况下需要执行的操作
语法:注意冒号与缩进(默认为4个空格)
例1:输入一个学生的姓名、成绩,如果成绩>=60输出’合格’,小于60输出不合格
例2:输入一个整数,判断这个数是奇数还是偶数
双分支
描述了程序在布尔表达式结果为True或者False的情况下需要执行的操作
语法:
例1:输入一个学生的姓名、成绩,如果成绩>=60输出’合格’,小于60输出不合格
例2:输入一个整数,判断这个数是奇数还是偶数
多分支
描述了程序在不同的布尔表达式下分别需要进行的操作,else不是必须的
语法:
例1:输入一个学生的姓名、成绩,如果成绩在[91,100]输出’优秀’,成绩在[81,90]输出’良好’,成绩在[60,80]输出’合格’,小于60输出’不合格’
嵌套if语句
例1:输入一个学生的姓名、成绩,如果成绩在[91,100]输出’优秀’,成绩在[81,90]输出’良好’,成绩在[60,80]输出’合格’,小于60输出’不合格’。如果输入成绩不在0-100提示错误,输入成绩包含非数字提示错误。
例2:使用一个字典保存学生的信息(学号作为键,值为列表–包含姓名、性别、手机号三个元素),输入一个学生的学号,如果存在则打印出该学生的信息,如果不存在则新增一个学生 - 循环语句(while、for)
while语句
描述了程序在指定条件成立的情况下重复完成某个操作
语法:
例1:输出0-9这10个数字
例2:计算1+2+…+9+10的和
例3:输入1个正整数n,计算1+…+n的和,如果n=1,和为1
例4:循环次数未知,可以通过变量值的变化控制循环继续还是结束。
使用字典保存用户信息userinfo = {‘user1’:[‘123456’,‘张三’],‘user2’:[‘123456’,‘李四’]},完成注册和登录功能
注册,如果用户名已存在,提示错误;如果密码不是6位数字,提示错误
for语句
语法:
i,变量,可以不需要声明,在循环内部可以直接使用该变量的值
range(start,end),生成[start,end)范围的数字序列
例1:输出0-9这10个数字
例2:输入1个正整数n,计算1+…+n的和,如果n=1,和为1
例3:将字符串s = 'qw$^e&sd1*23('中的特殊符号去除
例4:嵌套for循环。输出一个5x5矩阵
例5:输出九九乘法表
循环控制语句
continue,结束当前循环,开始下一次新的循环
break,终止循环
循环与else
如果循环没有遇到break语句而终止,则执行else语句中代码;否则不执行
函数
函数
- 声明:
函数名:必须符合标识符命名规范
参数:也叫做形参,可选,可以有多个。在函数内部可以直接使用形参
返回值:可选的,可以同时返回多个值。如果没有return语句,则默认返回None
调用:函数名([参数1,…])
参数:也叫做实参,根据形参传入实参
例1:
不带参数与返回值
例2:
带一个参数与一个返回值
例3:
多个参数与多个返回值 - 参数
形参
必须参数(位置参数)
要求在调用时必须严格按照形参的数量、顺序、数据类型传入实参
默认参数
在声明函数时通过键值对(key=value)的形式指定形参的值,指定了以后在调用函数时,可以不为该参数传值(此时使用默认值),如果传入则使用实际传入的值。
默认参数必须放在位置参数后面
可变参数
*args,接收若干的位置参数,将传入的值封包一个元组args中
**kwargs,接收若干的关键字参数,将传入的值封包一个字典kwargs中
实参
位置参数,根据形参的数量、顺序、数据类型传入实参
关键字参数(指定参数)
在调用函数时,通过键值对(key=value)形式指定将实参传给某个形参,此时可以不用再关心形参的顺序 - 变量作用域
局部变量
在函数内部声明的变量,只能在函数内部使用
全局变量
在函数外部声明的变量,可以在函数的内部使用,也可以在函数外部使用
global
在函数内部如果需要修改全局变量(不可变数据类型),需要使用global声明变量
如果全局变量为可变数据类型,在函数内部可以任意操作该全局变量,不需要使用global声明,
例 - 函数递归
在函数内部return返回函数本身
注意
递归需要向已知的方向进行
递归层数一般不超过1000层
例 - 匿名函数
语法:lambda [参数1,…]:返回值
必须,并且只能有一个返回值
不会重复调用的地方,用的比较少
例1:
例2:排序,通过匿名函数指定用于排序的key
模块与包
模块与包
- 自定义模块,py文件即为一个模块
包,存在一个__init__.py文件的目录,在包中可以有若干的模块
导入
import 模块名/包名.模块名
导入一个模块,使用时通过模块名.成员名
引用模块下的指定内容
from 模块名/包名 import 成员1,成员2,…
导入模块下的指定成员
from 模块名/包名 import *
导入模块下的所有成员
as,可以为导入的模块或者成员取别名,使用时通过别名引用即可 - 常用模块
random
random.randint(a,b),生成[a,b]之间的整数
random.uniform(a,b),生成[a,b]之间的浮点数
random.random(),生成[0,1.0]之间的浮点数
random.randrange([start], stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数
random.choice(sequence),从序列中获取一个随机元素
random.shuffle(x[, random]),将一个列表中的元素打乱
random.sample(sequence, k),从指定序列中随机获取指定长度的片断
time
time()
sleep(t)
strftime(fmt)
%Y - 4位年;%m - 2位月;%d - 2位天;%X - 小时:分钟:秒;%H - 小时;%M - 分钟;%S - 秒;
sys
path,以列表返回python环境变量
os
os.system(命令),执行系统命令
os.getcwd(),获取当前工作目录
os.mkdir(path),创建目录
os.listdir(path),以列表返回指定目录下的文件名、目录名
os.path.exists(path),检查指定对象是否存在,存在返回True,否则返回False
os.path.isdir(path),检查指定路径是否为目录,如果是返回True,否则返回False
os.path.isfile(path),检查指定路径是否为文件,如果是返回True,否则返回False
os.path.abspath(path),返回指定对象的绝对路径
os.path.abspath(file),返回当前文件的绝对路径
os.path.dirname(path),返回指定对象所在的目录
os.path.join(path,obj),将两个对象拼接成一个路径
例1:输入1个目录路径,统计出该目录下有多少个文件和目录
hashlib
md5(s:bytes),对明文进行md5加密,返回md5对象,加密后可以通过调用hexdigest()方法获取密文
- 安装第三方模块
pycharm安装
pip命令安装(推荐)
pip install pip -U,更新pip模块
pip -V,返回版本
pip list,列出已经安装的所有模块
pip show 模块名,列出已经安装的指定模块的信息
pip install 模块名,从默认镜像源安装指定模块
国内的镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
临时配置:-i 镜像源
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple,使用清华大学镜像源安装
永久配置:pip config set global.index-url 镜像源
pip config set global.index-url http://pypi.douban.com/simple/,配置默认镜像源为豆瓣镜像源
pip install xlrd,配置好以后默认安装时使用豆瓣镜像源
pip uninstall 模块名,卸载已经安装的模块
文件操作
文件操作
- Excel
模块:xlrd(读)
pip install xlrd
使用步骤:
1、打开文件
open_workbook(path),打开Excel文件,返回一个文件对象,目前只支持xls格式,不支持xlsx
例1:f = xlrd.open_workbook(‘./test.xls’),打开当前目录下的test.xls文件
2、获取文件中的sheet名称
sheets(),返回excel文件中所有的sheet对象,通过对象调用name返回sheet名称
例2:sheets = f.sheets(),获取所有的sheet对象
sheet_names(),返回excel文件中所有的sheet的名称
例3:names = f.sheet_names(),以列表返回所有的sheet的名称
sheet_by_name(sheet_name),通过sheet名称获取指定的表
例4:sheet = f.sheet_by_name(‘表1’),获取名称为表1的sheet
sheet_by_index(index),通过索引获取指定的表
例5:sheet = f.sheet_by_index(1),获取索引为1的sheet
3、通过sheet名称获取指定表中的数据
行
nrows,返回sheet中的行数
例6:rows = sheet.nrows
row_values(row),获取指定行中的数据,参数row为行号
例7:values = sheet.row_values(1),获取第2行的数据,以列表返回
列
ncols,返回sheet中的列数
col_values(col),获取指定列中的数据,参数col为列号
单元格
cell_value(row,col),返回指定单元格的数据
模块:xlwt
xlwt模块只能写xls文件,不能写xlsx文件
安装模块:pip install xlwt
使用步骤:
1)创建工作簿:book = xlwt.Workbook(),如果写入中文为乱码,可添加参数encoding = ‘utf-8’
2)创建工作表:sheet = book.add_sheet(‘Sheet1’)
3)向单元格写入内容:sheet.write(m,n,‘内容1’)、sheet.write(x,y,‘内容2’)
4)保存工作簿:book.save(‘excel文件名称’),默认保存在py文件相同路径下,如果该路径下有相同文件,会被新创建的文件覆盖,即xlwt不能修改文件。
例1:基本使用
例2:设置样式
例3:设置字体
————————例4:设置单元格宽度
例5:设置边框
例6:设置背景色
安装第三方模块
pycharm安装
pip命令安装(推荐)
pip install pip -U,更新pip模块
pip -V,返回版本
pip list,列出已经安装的所有模块
pip show 模块名,列出已经安装的指定模块的信息
pip install 模块名,从默认镜像源安装指定模块
国内的镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 :https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
临时配置:-i 镜像源
pip install xlrd -i https://pypi.tuna.tsinghua.edu.cn/simple,使用清华大学镜像源安装
永久配置:pip config set global.index-url 镜像源
pip config set global.index-url http://pypi.douban.com/simple/,配置默认镜像源为豆瓣镜像源
pip install xlrd,配置好以后默认安装时使用豆瓣镜像源
pip uninstall 模块名,卸载已经安装的模块 - 文本文件
打开文件
语法:open(file[,mode=type,encoding=编码]),打开指定文件,返回一个文件对象
file,表示待操作的文件,相对路径、绝对路径都行(不能是目录)
mode,表示打开文件的方式,如果省略则表示只读模式
r,只读,如果指定的文件不存在,系统报错
w,覆盖写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
a,追加写入,如果指定的文件不存在,系统会自动创建该文件,然后执行写入操作
b,表示二进制,一般用于对图片类的文件操作
encoding,指定编码,如果打开文件提示编码错误,再加上encoding参数即可
例1:f = open(file=‘f2.py’,mode=‘r’,encoding=‘utf8’),以只读方式打开文件
常用方法
closed,检查文件是否为关闭状态,如果是返回True,否则返回False
close(),关闭文件
encoding,返回打开文件的编码
例2:
读文件
read(),将文件的所有内容读取出来,保存在字符串中
readline(),读取文件中的一行,保存在字符串中
readlines(),将文件的所有内容读取出来,保存在列表中,文件中的每一行为列表中的一个元素
写文件
write(s),将一个字符串写入文件
writelines(iter),将一个可迭代对象的所有元素写入文件
例:
有一个文件保存学生的成绩信息,计算出每个学生的总成绩 - csv文件
模块:csv
使用步骤:
打开文件(open)
读取内容(csv.reader())
例:
with语句
管理上下文,可以实现打开文件后自动关闭
语法:with open(file) as f:
例:
1、一个目录users,users中使用文件保存用户信息(每个用户一个文件,文件名为账号),文件中包含三行内容,分别是密码、姓名、账户余额,格式如下。
2、实现系统的登录、注册功能
异常
异常
- 语法:
try
将有可能引发异常的语句放在try中
except
捕获异常,并且针对该异常进行相应的处理,可以同时存在多个except语句
except 异常,捕获1个指定异常
except (异常1,异常2,…),捕获元组中的异常
except Exception,捕获所有异常
例1:多个except语句捕获不同的异常
例2:一个except语句捕获多个异常
例3:使用Exception捕获所有异常]
例4:判断数字是否合法
else
如果try中的语句没有引发异常,则执行else的代码
finally
无论try语句中的代码是否引发异常,都要执行finally中的代码
raise
主动抛出异常
数据库操作
数据库操作
- 模块:pymysql
pip install pymysql
使用步骤
1、导入pymysql模块
2、调用connect方法连接数据库,返回一个数据库对象
con = pymysql.connect(user=None,password=None,host=None,db=None,port=None,charset=None)
user,数据库用户名
password,数据库用户密码
host,数据库服务器地址
db,要连接的database
port,端口号
charset,字符集
常用方法
cursor(),创建游标
commit(),提交事务
rollback(),回滚事务
close(),关闭数据库连接
3、创建游标
cur = con.cursor(),通过数据库连接对象调用cursor()方法创建游标,用于执行SQL语句
4、操作数据库
通过游标调用相应的方法执行SQL语句
execute(sql),执行SQL语句,返回该SQL语句影响的行数
fetchone(),从select语句的查询结果中返回一行记录
fetchall(),从select语句的查询结果中返回所有记录
close(),关闭游标
5、关闭游标、关闭数据库连接
cur.close()
con.close()
python中的常用函数用法
print()函数
题目描述:
答案:
总结:
-
字符串的单引号和双引号的区别是什么?——实际上在print函数来看,没什么区别,都可以正常打印出来;
-
print函数中如果带单引号或双引号,则是表示将这个字符串打印出来,而如果print函数中是一个字符串变量的化,那么不需要加双引号,就会将这个字符串变量具体的值打印出来。
-
print函数中的“\t”是指制表符,代表着四个空格,也就是一个tab;它的作用是对齐表格数据的各列,可以在不使用表格的情况下,将数据上下对齐。
eval()函数
输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90-100分为A,80- 89分为B,70-79分为C,60~69分为D,60分以下为E。
要求:
用if语句实现;
输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
总结
- 这里用到了eval()函数,其功能如下:
eval()函数实际例子:
篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。
算法描述:
获取领先的分数 ,减去3分;
如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);
计算平方后的结果;
如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。
请编写程序实现上述算法的功能,并给出运行结果。
range()函数
小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?
- range函数:range函数详解,上面例子中range(n, -1, -1)含义是从n开始每次以-1为step递减,递减至-1,最后的-1是边界,是不会得到的,如果变为range(n,-1,-2)则表示每次以-2为step递减;
- //运算符表示向下取整除,它会返回整除结果的整数部分;%执行取模运算;示例如下:
致谢:
部分题目转载自以下网站,以示感谢!
https://www.jb51.net/article/227445.htm
版权声明:本文为CSDN博主「鱼排也爱小白菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sinat_41739591/article/details/124227613