1 函数

1 列表推导式

l=[i for i in range(m,n+1) if prime(i)]
    return sum(l)

2 计算字符

def CountDigit(number,digit):
    number,digit=str(number),str(digit)
    return l.count(digit)

3 斐波那契

def fib(n):
    l = [1, 1]
    #这里的第零个是第一项
    for i in range(2, n + 1):
        l.append(l[i - 2] + l[i - 1])
    return l[n]


def fibs(a, b):
    i = 0
    l = []
    while 1:
        if a <= fib(i) <= b:
            l.append(int(fib(i)))
            
        elif fib(i) >= b:
            break
        i+=1
        #i++放在整体否则跳不出循环
    return l

2 编程

1 eval,加权列表

image

def find(l,cnt):
    sum=0
    for i in l:
        if isinstance(i,list):
            #判断 i 是否是一个列表
            sum+=find(i,cnt+1)
        else:
            sum+=i*cnt
    return sum
l=eval(input())
print(find(l,1))


def cycle(l):
    sum=0
    for i in l:
        if isinstance(i,int):
            sum+=i
        elif isinstance(i,list) or isinstance(i,tuple):
            sum+=cycle(i)
    return sum
l=eval(input())
print(cycle(l))

2 全排列

from itertools import *
#itertools 模块提供了一些用于操作迭代器的函数,
#比如生成排列、组合等。这里使用了 permutations 函数
n=int(input())
for i in permutations([int(x) for x in range(1,n+1)]):
    print(*i,end='\n',sep='')
    # 这一部分是列表推导式,它生成一个整数列表,包含从 1 到 n 的所有整数。例如,如果 n = 3,
    # 它生成 [1, 2, 3]。列表作为函数输入会生成123的全排列

3 头插,倒序

n = int(input())
girl, boy, student = [], [], []
for i in range(n):
    id, name = input().split()
    student.append(name)
    if id == "0":
        girl.append(name)
    else :
        boy.insert(0,name)
 # 如果 id 为 "1"(男生),则将名字插入到 boy 列表的开头(反向排序)
dict1, dict2 = dict(zip(girl, boy)), dict(zip(boy, girl))
for i in range(n//2):  # 只循环 n//2 次,因为每次配对一个女生和一个男生
    if student[i] in dict1.keys():  # 如果当前学生是女生
        print(student[i], dict1[student[i]])  # 输出女生与对应男生的配对
    else:  # 如果当前学生是男生
        print(student[i], dict2[student[i]])  # 输出男生与对应女生的配对

4 层数

dic={}
def count(l,n):
    for i in l:
        dic[n]=dic.get(n,0)+1
        if isinstance(i,list):
            count(i,n+1)
l=eval(input())
n=int(input())
count(l,1)
print(dic.get(n,0))
#没有那么多层会报错

5 分数

from fractions import Fraction as f#起了一个别名
 # fractions 模块导入了 Fraction 类,并将其重命名为 f

3选择

1,Lambda表达式只可以包含一个表达式,不允许包含其他复杂语句,但在表达式中可以调用其他函数,该表达式的计算结果相当于函数返回值。
2,range、map、zip、filter、reversed、enumerate 等,生成的对象其实是 迭代器,也称为 惰性求值对象,它们并不立即计算所有数据,而是每次访问时按需生成数据。这种特性使它们非常适合处理大数据,因为它们不会一次性把所有数据加载到内存中,而是按需生成数据流。
3,在一个函数中如局部变量和全局变量同名,则局部变量屏蔽全局变量
4,Python定义函数时,( )参数类型。 不需要声明

5,ums 是一个包含三个元素的元组 (1, 2, 3)。
nums 是一个解包操作,将 nums 元组中的元素传递给 f1 函数。nums 会将元组中的元素展开,作为位置参数传递给 f1。

6,内置函数( map )用于将指定序列中的所有元素作为参数调用指定函数,返回一个新的序列。
内置函数( globals() )用于查看包含当前作用域内所有全局变量和值的字典。

定义函数时,在形参前面加一个星号表示可以接收多个位置参数并存放于( 元组 )中。
两个星号:字典
7,
image
image
8,image

9,image
image
image
image

posted on 2024-11-15 17:45  Hoshino1  阅读(2)  评论(0编辑  收藏  举报