<jupyter_start><jupyter_text>函数- 函数可以用来定义可重复代码，组织和简化- 一般来说一个函数在实际开发中为一个小功能- 一个类为一个大功能- 同样函数的长度不要超过一屏<jupyter_code>def JJ():
    print('hellow')
    return 100
JJ()
a=JJ()
print(a)#python中的所有函数实际上都是有返回值（return none）
#如果你没有设置<jupyter_output>hellow
100<jupyter_text>定义一个函数def function_name(list of parameters):        do something![](../Photo/69.png)- 以前使用的random 或者range 或者print.. 其实都是函数或者类<jupyter_code>def  max_( numb1,numb2,numb3):
    if numb1<numb2<numb3:
        return numb3
    elif numb1<numb3<numb2:
        return numb2
    elif numb3<numb2<numb1:
        return numb1
    
max_(1,3,4)
def Good =(nume2,name='wjj',name ):
    print('%S是一个傻子'%name)<jupyter_output><empty_output><jupyter_text>调用一个函数- functionName()- "()" 就代表调用 ![](../Photo/70.png)  带返回值和不带返回值的函数- return 返回的内容- return 返回多个值- 一般情况下，在多个函数协同完成一个功能的时候，那么将会有返回值 ![](../Photo/71.png)- 当然也可以自定义返回None  EP：![](../Photo/72.png)<jupyter_code>def fun1():
    print('hahaha')
def fun2():
    print(fun1())
fun2()
def shu_(numb):
    if numb %2==0:
        return 1
    else:
        return 2

shu_(2)
import random
num1=random.
def max_(num1,num2):
    if num1>num2:
        return num1
    if num1<num2:
        return num2
max_(2,3)<jupyter_output><empty_output><jupyter_text>KNN算法 读取图片，进行对比分析import matplotlib.pyplot as plt res = plt.imread('D:/rabbit.jpg')print(res)  类型和关键字参数- 普通参数- 多个参数- 默认值参数- 不定长参数  普通参数  多个参数  默认值参数- 默认参数只能放在最后  *之后的必须强制命名传入参数,* 之后的变量必须带参数名  强制命名- *之后的必须强制命名传入参数,* 之后的变量必须带参数名  不定长参数- \*args, 不定长，输入多少参数都可以，不写入参数也可以> - 可以输入多个参数  - 返回输出结果的类型是元组类型，元组可以迭代，输入多少个参数都可以迭代来取出  - args 名字是可以修改的，只是通常约定为args- \**kwargs, 不定长第二种> - 可以输入多个参数，但需要带参数名称  - 返回的数据类型是字典  - 输入的一定要是表达式(键值对)- 一般大的项目传入参数时，使用config文件一次写入所有的参数<jupyter_code>def TT(**args,**kwargs):
    print(args)
    print(kwargs)
TT(1,2,3,4,a=100,b=1000)<jupyter_output><empty_output><jupyter_text>\**kwargs, 不定长第二种- 第二种不定长参数传入方法，使用字典数据传入- 写入参数时，必须先写\*args, 再写\**kwargs。 这是固定写法<jupyter_code>def U(str_):
    for i in str_:
        ASCII=ord(i)
        if 97<=ASCII<=122:
            xiaoxie+=1<jupyter_output><empty_output><jupyter_text>变量的作用域- 局部变量 local- 全局变量 global- globals 函数返回一个全局变量的字典，包括所有导入的变量- locals() 函数会以字典类型返回当前位置的全部局部变量。<jupyter_code>a=1000
def Y():
    global a#在进行赋值操作的时候需要声明
    a+=100
    print(a)
Y()<jupyter_output>1100<jupyter_text>注意： - global ：在进行赋值操作的时候需要声明- 官方解释：This is because when you make an assignment to a variable in a scope, that variable becomes local to that scope and shadows any similarly named variable in the outer scope.- ![](../Photo/73.png)  EP：- 定义一个邮箱加密函数，使得输入邮箱后进行ASCII码加密- 定义一个判断其是否为闰年的函数- 函数的嵌套：定义两个函数A，B，B函数接受A函数的数值并判定是否为奇数或者偶数  Homework- 1![](../Photo/74.png)<jupyter_code>def joker6():
    n=0
    for n in range(1,100):
        shu = n*(3*n-1)/2
        print(shu,end='  ')
        n+=1
        if n%10==0:
            print()
joker6()<jupyter_output>1.0  5.0  12.0  22.0  35.0  51.0  70.0  92.0  117.0  
145.0  176.0  210.0  247.0  287.0  330.0  376.0  425.0  477.0  532.0  
590.0  651.0  715.0  782.0  852.0  925.0  1001.0  1080.0  1162.0  1247.0  
1335.0  1426.0  1520.0  1617.0  1717.0  1820.0  1926.0  2035.0  2147.0  2262.0  
2380.0  2501.0  2625.0  2752.0  2882.0  3015.0  3151.0  3290.0  3432.0  3577.0  
3725.0  3876.0  4030.0  4187.0  4347.0  4510.0  4676.0  4845.0  5017.0  5192.0  
5370.0  5551.0  5735.0  5922.0  6112.0  6305.0  6501.0  6700.0  6902.0  7107.0  
7315.0  7526.0  7740.0  7957.0  8177.0  8400.0  8626.0  8855.0  9087.0  9322.0  
9560.0  9801.0  10045.0  10292.0  10542.0  10795.0  11051.0  11310.0  11572.0  11837.0  
12105.0  12376.0  12650.0  12927.0  13207.0  13490.0  13776.0  14065.0  14357.0  14652.0<jupyter_text>- 2 ![](../Photo/75.png)<jupyter_code>def joker8(n):
    import random
    random = random.randint(0,1000)
    num1= n % 10
    num2= n // 10
    num4 =num2% 10
    num5=num2//10
    i =num1 + num4 +num5
    return i
joker8(789)<jupyter_output><empty_output><jupyter_text>- 3![](../Photo/76.png)<jupyter_code>def joker7(num1,num2,num3):
    nums =[num1,num2,num3]
    nums.sort()#将数字进行排序
    print(nums)
joker7()<jupyter_output><empty_output><jupyter_text>- 4![](../Photo/77.png) - 5![](../Photo/78.png) - 6![](../Photo/79.png)<jupyter_code>def number(year):
    year = 0
    for year in range(2010,2021):
        if year % 4 == 0 and year % 100 != 0 or year%400==0:
            print(year,'一年有366天')
        else:
            print(year,'一年有365天') 
            year+=1
            print()
number(2009)<jupyter_output>2010 一年有365天

2011 一年有365天

2012 一年有366天
2013 一年有365天

2014 一年有365天

2015 一年有365天

2016 一年有366天
2017 一年有365天

2018 一年有365天

2019 一年有365天

2020 一年有366天
{'fraction_non_alphanumeric': 0.14102564102564102, 'fraction_numerical': 0.15971316818774445, 'mean_word_length': 3.207495429616088, 'pattern_counts': {'":': 0, '<': 46, '<?xml version=': 0, '>': 40, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '149702', 'license': 'Apache-2.0', 'n_tokens_mistral': 2877, 'n_tokens_neox': 2601, 'n_words': 382, 'path': '7.20.ipynb', 'repo_name': 'liushengkun260042/mysql', 'size': '4602'}