Python编程基础一

Python编程基础一

一:常用的函数

1.list的常用用法

list1 = ['a','b','c','d','e','f']
list1.append('g') # 在末尾添加元素
print(list1)
list1.insert(2, 'ooo')  # 在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加
print(list1)
list2 = ['z','y','x']
list1.extend(list2) #合并两个list   list2中仍有元素
print(list1)
print(list2)

结果:

['a', 'b', 'c', 'd', 'e', 'f', 'g']
['a', 'b', 'ooo', 'c', 'd', 'e', 'f', 'g']
['a', 'b', 'ooo', 'c', 'd', 'e', 'f', 'g', 'z', 'y', 'x']
['z', 'y', 'x']

2.count计数和index查找

list1 =['a','b','c','a','d','d']
print(list1.count('a'))
print(list1.index('a'))
print('a' in list1)
2
0
True

3.删除元素

list =['a','b','c','d','f','e']
print(list.pop(3))
print(list)
list.remove('a')
print(list)
d
['a', 'b', 'c', 'f', 'e']
['b', 'c', 'f', 'e']

重点!重点!重点!
4.生成器

# 第一种方法类似列表生成式
L = [x*x for x in range(10)]
print(L)
g = (x*x for x in range(10))
for i in g:
    print(i)

#第二种方法基于函数
def reverse_print(string):
    print(string[::-1])
    return 'Successful'

ret = reverse_print('Molly')
print(ret)

def facctor(max_num):
    # 这是一个函数 用于输出所有小于max_num的质数
    factor_list = []
    n = 2
    while n<max_num:
        find =False
        for f in factor_list:
            if n % f == 0:
                find =True
                break
        if not find:
            factor_list.append(n)
            yield n
        n+=1
g = facctor(100)
for i in g:
    print(i)

5.错误和异常处理

  • try:
  • <语句> #运行别的代码
  • except <名字>:
  • <语句> #如果在try部份引发了’名字’异常
  • except <名字>,<数据>:
  • <语句> #如果引发了’名字’异常,获得附加的数据
  • else:
  • <语句> #如果没有异常发生
  • finally:
  • <语句> #有没有异常都会执行
    try,except语句的异常抛出机制,是在try语句中发生异常,之后不再运行try下面的语句,而是直接执行except中的语句
list1 = [1,2,3,4,'5',6,7,8]
# n=1
for i in range(len(list1)):
    try:
        list1[i]+=1
        print(list1[i])
    except:
        print('有异常发生')

将发生的异常具体说明

list1 = [1,2,3,4,'5',6,7,8]
n=1
for i in range(len(list1)):
    try:
        list1[i]+=1
        print(list1[i],end=" "),
    except TypeError as e:
        print(e)

输出:运行耗时: 31毫秒 2 3 4 5 can only concatenate str (not "int") to str 7 8 9
样例二:


list1 = [1,2,3,4,'5',6,7,8]
n=1
for i in range(len(list1)):
    print(i)
    try:
        list1[i]+=1
        print(list1[i])
    except IOError as e:
        print(e)
        print("输入输出异常")
    except :
        print("有错误发生")
    else:
        print("正确执行")
    finally:
        print("总是执行")

6.元组:tuple
python中的函数tuple()可以将列表转化为元组,元组是不可以被修改的
而对于字典的转化方式,只会返回字典的key组成的tuple
tuple() 函数不是改变值的类型,而是返回改变类型后的值,原值不会被改变:
样例:

test_list1 = ('a','b','c')
test_list2 = ['x','y','z']
test_tuple = tuple(test_list2)
# test_list2 可以修改,tuple() 函数不是改变值的类型,而是返回改变类型后的值,原值不会被改变
test_list2[2] = '这是修改的'
#下面这行报错,元组不可修改
# test_list1[2]='这是修改的'
print(test_list1)
print(test_list2)
print(test_tuple)

输出

('a', 'b', 'c')
['x', 'y', '这是修改的']
('x', 'y', 'z')

二:函数用法

1.函数的传参(怎样传多个参数,也叫可变参数)
方法一:将参数定义为元组类型的

def all_student_names(*names):
    for name in names:
        print('姓名:', name)
all_student_names('张三','李四','王五')

输出:
姓名: 张三
姓名: 李四
姓名: 王五

方法二:将传入的参数定义为列表

def all_student_names(names):
    for name in names:
        print('姓名:', name)
names = ('张三','李四','王五')
all_student_names(names)

姓名: 张三
姓名: 李四
姓名: 王五
2.关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

def student_info(name, age, **kw):
    print(f'我的名字叫:{
      
      name},年龄:{
      
      age},其它信息:{
      
      kw}')
    if 'city' in kw:
        print('来自:', kw['city'])
student_info('张三', 18, height=180, city='北京')

输出:

我的名字叫:张三,年龄:18,其它信息:{
    
    'height': 180, 'city': '北京'}
来自: 北京

3.lambda匿名函数
ython 使用 lambda 来创建匿名函数。

lambda 只是一个表达式,函数体比 def 简单很多。
定义一个加法函数

add lambda arg1,arg2:arg1+arg2
add(1,2)
# 数字转字符串
int2str = lambda x : str(x)
int2str(5)

4.高阶函数

add = lambda x,y:x+y
mul =lambda x,y:x*y
SS = lambda x,y:x**2+y**2

print(func_xy(1,2,add))
print(func_xy(1,2,mul))
print(func_xy(1,2,SS))

6.python常用的高阶函数
map和reduce函数的参数第一个传入函数,第二个传入数值

from functools import reduce
mul_xy = lambda x,y:x*y
print(reduce(mul_xy,[1,3,5,7,9]))

结果:945
7.sorted()排序
对坐标轴排序

from functools import reduce
mul_xy = lambda x,y:x*y
print(reduce(mul_xy,[1,3,5,7,9]))

points = [(5,2), (7,3), (3,4),(1,1),(2,6)]  # 按x坐标排序 y坐标排序 和0点距离排序

f_x = lambda  x:x[0]
print(sorted(points,key=f_x))

[(1, 1), (2, 6), (3, 4), (5, 2), (7, 3)]

Guess you like

Origin blog.csdn.net/qq_51269815/article/details/121757570
Recommended