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):
    pass

def 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,c
    
def get_delta(a,b,c):
    #计算delta
    return b**2-4*a*c

def 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 res

    def out(x):
        res.remove(x)

    return put,get,out



p,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 = 0
    while i<n:
        yield i
        i += 1
        
for 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
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御承扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值