python基础语法和基本数据结构
Python基础语法
一、运算符
a.比较运算符
运算符 | 意义 |
---|---|
x<y | 当x真的小于y时,返回真,否则返回假 |
b.数值运算符
运算符 | 意义 |
---|---|
x/y | 返回x/y的结果 |
x//y | 返回x除于y的整数部分 |
x%y | 返回x除于y的余数 |
abs(x) | 返回绝对值 |
int(x) | 转换为整形数 |
float(x) | 转化为浮点数 |
complex(re,im) | 定义复数 |
c.conjugate() | 返回复数的共轭复数 |
divmod(x,y) | 相当于x//y、x%y |
pow(x,y)或x**y | 返回x的y次方程序结构 |
二、程序结构
类别 | 特点 |
---|---|
顺序结构 | 代码执行顺序从头到尾依次执行 |
选择结构 | 使用if语句选择性执行代码,可分为单分支if和多分支if语句 |
循环结构 | 使用for、while来进行循环体的定义 |
三、异常处理
1、try-except结构
try:处理代码
except Exception as e:处理代码发生异常,在这里进行处理
2、try-except-finally结构
try:print(1/0)
except Exception as e:print("除0异常")
finally:print("必须执行")
3、try-except-else结构
try:print("正常代码")
except Exception as e:print("将不会输出这句话")
else:print("这句话将被输出")
4、try-except-else-finally结构
try:print("没有异常")
except Exception as e:print("不会输出")
else:print("进入else")
finally:print("必须输出")
四、函数
1、函数基本结构
def 函数名(参数):函数体return 返回值
2、参数结构
(一)、传统参数传递
a、无参传递
def func():print("这是无参函数")
b、固定参数传递
def func(x):passdef func(x,y,z):pass
(二)、默认参数传递
def func(x,y=100,z='hello'):#参数默认值的设定,应当遵循从右到左原则print(x,y,z)
(三)、未知参数个数传递
def func(name,*args):print(name+"有以下雅称:")for i in args:print(i)func("赵钱孙","猴子","毛毛","赵学霸")
(四)、带键参数传递
def func(**kwargs):print(type(kwargs))for i in kwargs:print(i,kwargs[i])func(aa=1,bb=2,cc=3)
print("---------")
func(x=1,y=2,z='hello')
3、回调函数
def func(fun,args):fun(args)def f1(x):print("这是f1函数:",x)def f2(x):print("这是f2函数:",x)func(f1,1)
func(f2,"hello")
4、函数的嵌套和递归
a、函数的递归
def fib(n):if n<=2:return 1;else:return fib(n-1)+fib(n-2)
b、函数的嵌套
def args_input():#定义输入函数try:a = float(input("输入a:"))b = float(input("输入b:"))c = float(input("输入c:"))return a,b,cdef get_delta(a,b,c):#计算deltareturn b**2-4*a*cdef slove():a,b,c = args_input()delta = get_delta(a,b,c)if delta<0:print("方程无解")elif delta==0:x = b/(-2*a)print("x=",x)else:x1=(b+delta**0.5)/(-2*a)x2=(b-delta**0.5)/(-2*a)print("x1=",x1)print("x2=",x2)def main():slove()
if __name__ == '__main__':main()
5、闭包
- 闭包:将函数作为返回值返回
def func():res = []def put(x):res.append(x)def get():return resdef out(x):res.remove(x)return put,get,outp,g ,o= func()
p(1)
p(2)
print("当前res值:",g())
p(3)
p(4)
print("当前res值:",g())
o(4)
print("当前res的值:",g())
6、匿名函数lambda
- 类似于C++的#define定义
f = lambda x,y:x+y
print(f(2,3))
print((lambda x,y:x**2+y**2)(3,4))
7、关键字yield
- yeild关键字可以将函数执行的中间结果返回但不结束程序。
def func(n):i = 0while i<n:yield ii += 1for i in func(10):print(i)
Python数据结构
一、列表
- list,可作为栈(先进后出表)、队列(先进先出表)的等使用,定义形式:变量名 = [……],例如:
s = [1,2,3,4,5]
- 想要获取列表中的元素可以使用如下形式:变量名[下标值]来获取,使用原则如C++的数组。
1、list常用函数
函数名 | 作用 |
---|---|
list.append(x) | 将元素x追加到列表尾部 |
list.extend(L) | 将列表L中的所有元素追加到列表尾部形成新列表 |
list.insert(i,x) | 在列表index为i的位置插入x元素 |
list.remove(x) | 将列表中第一个为x的元素移除,若不存在x元素将引发一个异常 |
list.pop(i) | 删除index为i的元素,并将删除元素显示。若不指定i,则默认弹出最后一个元素 |
list.clear() | 清空列表 |
list.index(x) | 返回第一个x元素的位置,若不存在x,则会报错 |
list.count(x) | 统计列表中x元素的个数 |
list.reverse() | 将列表反向排列 |
list.sort() | 将列表从小到大排序。如需要从大到小排序,则用list.sort(reverse=True)表示 |
list.copy() | 返回列表的副本 |
二、元组(tuple)
定义形式
t=(1,2,3)
取值方式与列表相似,与列表不同的是:元组中的元素一旦确定就无法更改
tuple.count(x) #计算x在tuple中出现次数 tuple.index(x) #计算第一个x元素的位置
三、集合(set)
定义形式
s={1,2,3,35,2}
集合不能保存重复的数据,即具有过滤重复数据的功能,对于元组或者数组来说,可以使用set函数来去除重复的数据,如下:
>>> L=[1,1,1,2,2,2,3,3,3,4,4,4,5,5,5] >>> T=5,5,5,6,6,6,7,7,7,8,8,8,9,9,9 >>> SL=set(L) >>> ST=set(T) >>> L [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5] >>> SL {1, 2, 3, 4, 5} >>> T (5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9) >>> ST {5, 6, 7, 8, 9}
注意:因为set中的元素是无序的,因此不能用set[i]的方式来获取元素
集合的操作
操作符或函数 | 意义 |
---|---|
x in S | 如果S中包含x元素,则返回True,否则返回False |
x not in S | 如果S中不包含x元素,则返回True,否则返回False |
S+T | 链接S与T,返回连接后的新的集合类 |
S*n | 将S延长自身n次 |
len (S) | 返回S的长度 |
四、字典
定义形式
d={key:value}
字典,又称为键值对,字典的每一项都由一个key和value,key和value之间用“:”隔开,二字典的每一项用“,”隔开;值得注意的是:字典的key必须唯一,不能重复 字典的取值方式:d[key]
>>> d={1:10,2:25,'a':14,5:"hello"} >>> d[2] 25 >>> d['a'] 14 >>> d[5] 'hello'
字典的操作
>>> dc=d.copy() #字典的复制
>>> dc
{1: 10, 2: 25, 'a': 14, 5: 'hello'}
>>> dc.clear() #字典的清除
>>> dc
{}
>>> d.items() #获取字典的项列表
dict_items([(1, 10), (2, 25), ('a', 14), (5, 'hello')])
>>> d.keys() #获取字典的key列表
dict_keys([1, 2, 'a', 5])
>>> d.values() #获取字典的value列表
dict_values([10, 25, 14, 'hello'])
>>> d.pop(1) #弹出key=1的项
10
>>> d
{2: 25, 'a': 14, 5: 'hello'}
字典不能用“*“连接
字典的迭代
>>> d={1:2,3:4,'a':'2sd','er':34} >>> for i in d: #利用循环进行迭代print(i,d[i])1 2 3 4 a 2sd er 34 >>> i=iter(d) #利用迭代器函数iter()进行迭代 >>> k=next(i) >>> k,d[k] (1, 2) >>> k=next(i) >>> k,d[k] (3, 4)
list、tuple和set的共有操作
这三种数据结构对于求长度、求最小值、求最大值和求和操作,调用的函数是一样的
>>> L=[1,2,3,4,5] >>> T=1,2,3,4,5 >>> S={1,2,3,4,5} >>> len(L),len(T),len(S) #求长度 (5, 5, 5) >>> min(L),min(T),min(S) #求最小值 (1, 1, 1) >>> max(L),max(T),max(S) #求最大值 (5, 5, 5) >>> sum(L),sum(T),sum(T) #求和 (15, 15, 15)
迭代
>>> for i in L: #利用循环进行迭代print(i)1 2 3 4 5 ------------ >>> i=iter(L) #利用iter()进行迭代 >>> next(i) 1 >>> next(i) 2 >>> next(i) 3
五、3个函数(map、filter、reduce)
1、遍历函数(map)
map函数用于遍历序列,对序列中的每个元素进行操作,最终获取型的序列:
>>> L=[1,2,3,4,5] >>> new_list=map(lambda a:a+100,L) >>> list(new_list) [101, 102, 103, 104, 10]
2、筛选函数(filter)
filter函数用于对序列中的元素进行筛选,最终获取符合条件的序列。
>>> l=[100,11,20,5,60,29] >>> new_l=filter(lambda x:x>22,l) >>> list(new_l) [100, 60, 29]
3、累计函数(reduce)
reduce函数用于对序列内的所有元素进行累计操作:
>>> from functools import reduce #从functools模块倒入reduce函数 >>> li = [11,22,33] >>> reduce(lambda arg1,arg2:arg1+arg2,li) 66 #reduce函数的第一个参数是有两个参数的函数,即函数必须有两个参数 #reduce的第二个参数是将要循环的序列 #reduce的第三个参数是初始值 >>> li.append(44) >>> reduce(lambda arg1,arg2:arg1+arg2,li) 110 >>> reduce(lambda arg1,arg2:arg1+arg2,li,100) 210
python基础语法和基本数据结构相关推荐
- python变量类型-【干货】Python基础语法之变量类型
原标题:[干货]Python基础语法之变量类型 还没关注? 01 Python编码 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错. 解决 ...
- python基础指令-python基础语法,python 代码命令大全
python: 1.语法强制缩进 2.区分大小写:iLoop与iloop是两个变量 3.变量无需申明,但是变量赋值前无法使用:a=3合法,b=a+3合法,b=a+c不合法,因为c未赋值前不能使用 4. ...
- python基础语法(一)
Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语 ...
- python基础代码大全-python基础语法,python 代码命令大全
python: 1.语法强制缩进 2.区分大小写:iLoop与iloop是两个变量 3.变量无需申明,但是变量赋值前无法使用:a=3合法,b=a+3合法,b=a+c不合法,因为c未赋值前不能使用 4. ...
- python基础语法及知识点总结
本文转载于星过无痕的博客http://www.cnblogs.com/linxiangpeng/p/6403991.html 在此表达对原创作者的感激之情,多谢星过无痕的分享!谢谢! Python学习 ...
- python:python基础语法三,列表、元组、字典、集合
python基础语法 文章目录 python基础语法 列表(list) 列表简介 切片 列表修改元素 列表的方法 遍历列表 序列(sequence) 序列的基本操作 range()函数 EMS(Emp ...
- Python数据分析训练营——Python基础语法
文章目录 1.Python数据分析之前奏 1.1 Python基本语法 (1)数据类型 字符串 整数 浮点数 布尔值 空值 运算符 (2)数据结构 可变对象和不可变对象 类型转换 1.2 Python ...
- #第3篇分享:python基础语法-磨刀不误砍柴工
#python基础语法 无论学习什么语言,我们最初都要学习这门语言的基础语法及一些基本定义,下图基本涵盖了python学习所有的基础知识,下面我就详细来说上一说,说的不好您见谅: 1.首先介绍一下数据 ...
- 【数据分析师-python基础】python基础语法精讲
python基础语法精讲 1 从数字开始 1.1 理解整数.浮点数.复数几种类型对象 1.2 掌握运算及其相关的常用函数 2 变量.表达式和语句 2.1 变量作用及定义的方法 2.2 变量命名原则和习 ...
最新文章
- iframe几种常用代码片段
- EOS 智能合约源代码解读 (11)wrap合约“action_wrapper类”
- 访问windows azure虚拟机iis服务器,如何直接从Java访问Azure/IIS证书?
- 《回答sort一例》-linux命令五分钟系列之二十八
- Scala进阶之路-I/O流操作之文件处理
- 芯片介绍:CC2530
- myeclipse复制的文件代码乱码
- 计算机类qq网名,最帅的qq名字
- selenium页面跳转问题-QQ邮箱登录之后找不到元素
- CnOpenData中国各区县工商注册企业分年份数量统计(含新增,注销企业数量)
- Android - 跳转系统网络设置
- mysql 三元_三元联系简介
- python足球联赛赛程_足球联赛赛程表工作表
- Python爬虫实例--新浪热搜榜[正则表达式]
- NBA各队所在分区,州,城市,主体育馆资料整理
- oracle 行转列后列名,Oracle 多行转多列,列值转为列名
- Delphi判断是否为周末?今天是周几?
- String比较字符串方法
- LeetCode 题库 全	JAVA 解题---771.宝石与石头
- Docker删除镜像/容器
热门文章
- 设计模式之迭代器模式详解(JAVA 版)
- mptcp linux 升级,linux – MPTCP的可配置性如何?
- Laetus控制器维修20C-A323包装机控制模块
- 互联网晚报 | 1/17星期二 | ​腾讯100余人因触犯高压线被辞退;滴滴出行新用户注册恢复;理想汽车回应夜间驾车显示有人追车...
- 深富策略航运股持续走强
- 拜耳阵列(拜耳马赛克)简介
- 核电站安全距离--如果大亚湾核电站泄漏,惠州深圳也会遭受污染?
- QQ2007尾巴病毒实现(一)
- 【笔记】前端 HTML
- 未来人工智能将成日用品