公司网站大顶图怎么做,怎么在网上做彩票网站,做百度推广销售怎么样,随州网站建设价格认识 Python 的函数
函数是一段具有特定功能的、可重复使用的代码块#xff0c;它能够提高程序的模块化和代码的复用率。一个较大的程序#xff0c;通常需要合理的划分程序中的功能模块#xff0c;功能模块在程序设计语言中被称为函数。
使用函数有两个目的#xff1a;
…认识 Python 的函数函数是一段具有特定功能的、可重复使用的代码块它能够提高程序的模块化和代码的复用率。一个较大的程序通常需要合理的划分程序中的功能模块功能模块在程序设计语言中被称为函数。使用函数有两个目的分解问题将一个大问题或者大功能分解成多个小问题降低编程难度使问题更容易解决避免编写重复代码1、函数的定义和调用在 Python 中使用 def 关键字来定义函数而函数调用通过调用语句来实现调用语句所在的程序或函数称为调用程序或调用函数。# 函数的定义和声明# 函数的定义defprint_line():print(**************************)defprint_text():print(这是一句话 )# 函数的调用print_line()print_text()print_line()# 输出# **************************# 这是一句话# **************************2、函数的参数和返回值在 Python 中参数的类型很多有形式参数形参实际参数实参必备参数、关键字参数、默认参数、不定长参数。- 形参和实参形参使用 def 语句来定义函数时函数名后面的圆括号中的参数就是形式参数形参。形参只能是变量只有函数被调用时才分配内存单元调用结束时释放所分配的内存单元。实参调用函数时函数名后面的圆括号中的参数。实参可以是常量、变量、表达式在实施函数调用时实参必须有确定的值。示例如下# 使用 max() 函数求两个数中值较大的数defmax(a,b):ifab:returnaelse:returnb xint(input(输入数字a ))yint(input(输入数字b ))zmax(x,y)# 调用函数print(较大的数为,z)# 输出# 输入数字a 3# 输入数字b 6# 较大的数为 6在这个例子中max() 函数括号内的 a,b 就是该函数的形参而调用该函数时括号内的 x 和 y 则是传递给该函数的实参。- 必备参数必备参数须以正确的顺序传入函数调用函数时输入的实参和形参的顺序要一致实参数量必须和声明函数时形参的数量一样不然会出现语法错误。示例如下# 必备参数defprint_text(x,y):print(x,y)print_text(Hello,World)print_text(Hello)# 会报错# 输出# Hello World# Traceback (most recent call last):# File c:\Gitee\python\03_Day\03_function.py, line 7, in module# print_text(Hello) # 会报错# TypeError: print_text() missing 1 required positional argument: y- 关键字参数关键字参数和函数调用关系紧密函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序和声明不一致因为 Python 解释器能够用参数名匹配参数值。示例代码如下# 关键字参数deffun(discount,price):# 定义函数print(商品折扣,discount)print(商品价格,price)returnfun(price100,discount0.5)# 关键字参数传递# 输出# 商品折扣 0.5# 商品价格 100- 默认参数在定义函数时可以为函数的某个形参赋予默认值这个参数被称为默认值参数。带有默认值参数的函数示例如下# 默认值参数deffun(discount,price100):print(商品折扣,discount)print(商品价格,price)returnfun(0.5)# 输出# 商品折扣 0.5# 商品价格 100在调用 fun() 函数时只输入一个实参值。从结果知道尽管实参没有输入具体值price 仍然会按定义时的默认值输出。值得注意的是在定义有默认值参数的函数时只能将默认值赋给最右端的参数否则会出现语法错误。deffun(discount0.5,price):print(商品折扣,discount)print(商品价格,price)returnfun(100)# 输出# File c:\Gitee\python\03_Day\05_function.py, line 3# def fun(discount 0.5,price):# ^^^^^# SyntaxError: non-default argument follows default argument- 不定长参数在使用函数时若希望一个函数能够处理比定义时更多的参数即参数数量是可变的那么可以在函数中使用不定长参数。与上面几种参数相区别的是不定长参数在声明时形参不会命名。在函数的第一行参数列表最右侧增加一个带有 * 的参数基本语法格式为def函数名([形参列表,]*args):函数体其中* args 用来接收任意多个实参并将其放在一个元祖tuple中供函数使用。# 不定长参数deff(x,y,*args):print(x)print(y)print(args)f(10,9,8,7,6,5,4,3,2,1)# 输出# 10# 9# (8, 7, 6, 5, 4, 3, 2, 1)不懂怎么应用多余的参数都被args接收后面用到了详解- 函数的返回值在 Python 中函数使用 return 语句返回值选择性地向调用方返回一个表达式。return 语句用来退出函数并将程序返回到函数被调用的位置继续执行可以返回0个1个或一组值。函数返回的值被称为返回值基本语法结构为return[返回值列表]其中return 语句可以在函数体的任何位置出现return 语句是可选的如果有 return 语句但是 return 后面没有接表达式或者值的则返回 None如果没有 return 语句则会自动返回 None。# 函数的返回值deffun(discount,price):priceprice*discountprint(商品折扣,discount)print(商品价格,price)returnprice;pricefun(0.5,100)# 输出# 商品折扣 0.5# 商品价格 50.03、递归函数Python 支持函数的递归调用所谓递归就是自己函数直接或间接的调用其本身。举个例子# 递归在纸上执行遍就懂了deff(n):ifn1:return1else:returnf(n-1)*n# 先是调用自己全部完成后逐步 返回值nint(input(请输入一个正整数))print(n,的阶乘为,f(n))# 输出# 请输入一个正整数3# 3 的阶乘为 64、匿名函数lambda 函数用于定义简单的、能够一行内表示的函数。示例如下sumlambdaarg1,arg2:arg1arg2;print(total:,sum(20,50))# 输出# 705、变量的作用域变量的作用域就是变量的使用范围程序的运行离不开变量。一个程序的所有变量并不是在哪个位置都可以访问的访问权限取决于这个变量是在哪里赋值。在 Python 中根据变量的作用域的不同分成全局变量和局部变量。定义在函数内的变量只能在函数内部使用作用范围仅在函数内部的变量称为局部变量。在函数之外定义的变量称为全局变量全局变量在整个程序内起作用。示例如下# 变量的作用域price200deffun(discount,price):priceprice*discountprint(函数内局部变量价格为,price)returnprice fun(0.5,200)print(函数外全局变量价格为,price)# 输出# 函数内局部变量价格为 100.0# 函数外全局变量价格为 2006、Python 内置函数常用归纳表- Python 内置函数表分类函数名功能说明简单示例基础输入输出print()输出内容到控制台支持字符串格式化print(姓名%s % Tom)→ 姓名Tominput()从控制台获取用户输入返回字符串类型age input(请输入年龄)→ 接收字符串输入类型转换str()将其他类型转换为字符串核心str(123.45)→ “123.45”str(True)→ “True”int()将数字字符串转换为整数int(100)→ 100float()将数字字符串转换为浮点数float(3.14)→ 3.14bytes()将字符串转换为字节对象指定编码bytes(Python, encodingutf-8)→ b’Python’list()将字符串拆分为字符列表list(abc)→ [“a”, “b”, “c”]序列/集合操作len()计算字符串长度最常用len(Hello Python)→ 11sorted()对字符串字符按Unicode排序返回列表sorted(bac)→ [“a”, “b”, “c”]enumerate()遍历字符串的索引和字符for i, c in enumerate(ab): print(i, c)→ 0 a、1 b字符串专用内置函数ord()将单个字符转换为对应的Unicode编码值ord(A)→ 65ord(中)→ 20013chr()将Unicode编码值转换为对应的字符chr(65)→ “A”chr(20013)→ “中”ascii()返回对象的ASCII表示非ASCII字符用\u/\U转义ascii(中)→ “‘\u4e2d’”format()内置格式化函数与字符串format()方法功能一致format(3.1415, .2f)→ “3.14”数学计算max()获取字符串中字符的最大Unicode值max(abc)→ “c”min()获取字符串中字符的最小Unicode值min(abc)→ “a”对象判断与标识type()判断对象是否为字符串类型type(abc)→class strisinstance()判断对象是否为字符串实例isinstance(abc, str)→ True文件操作open()读取/写入字符串到文件指定编码with open(test.txt, w, encodingutf-8) as f: f.write(测试)其他常用eval()执行字符串中的Python表达式慎用避免安全风险eval(ab)→ “ab”repr()返回对象的官方字符串表示保留原始格式repr(abc\n)→ “‘abc\n’”区别于str()的直观表示- 常用字符串方法表方法名功能说明简单示例strip()去除字符串首尾的空白字符空格、换行、制表符可指定去除的字符 abc \n.strip()→ “abc”###abc###.strip(#)→ “abc”lstrip()去除字符串左侧的空白字符或指定字符 abc.lstrip()→ “abc”rstrip()去除字符串右侧的空白字符或指定字符abc .rstrip()→ “abc”split()按指定分隔符拆分字符串为列表默认按空白字符拆分a,b,c.split(,)→ [“a”,“b”,“c”]a b c.split()→ [“a”,“b”,“c”]join()将可迭代对象列表、元组的字符串元素用指定分隔符连接为一个字符串,.join([a,b,c])→ “a,b,c”replace()将字符串中的指定子串替换为新子串可指定替换次数abac.replace(a, x)→ “xbxc”abac.replace(a, x, 1)→ “xbac”lower()将字符串所有字符转为小写Python.lower()→ “python”upper()将字符串所有字符转为大写Python.upper()→ “PYTHON”startswith()判断字符串是否以指定子串开头支持指定起始/结束位置Python.startswith(Py)→ TruePython.startswith(th, 2)→ Trueendswith()判断字符串是否以指定子串结尾支持指定起始/结束位置Python.endswith(on)→ Truefind()查找子串在字符串中的首次出现位置找不到返回-1比index()更安全abcabc.find(bc)→ 1abc.find(d)→ -1index()查找子串的首次出现位置找不到抛出ValueErrorabcabc.index(bc)→ 1count()统计子串在字符串中出现的次数abac.count(a)→ 2splitlines()按换行符拆分字符串为列表处理多行文本a\nb\nc.splitlines()→ [“a”,“b”,“c”]format()字符串格式化替代%格式化更灵活姓名{}年龄{}.format(Tom, 18)→ “姓名Tom年龄18”f-stringPython3.6 特性字符串前缀f直接嵌入变量最简洁的格式化方式nameTom; f姓名{name}→ “姓名Tom”isdigit()判断字符串是否全为数字字符0-9123.isdigit()→ True123a.isdigit()→ Falseisalpha()判断字符串是否全为字母字符abc.isalpha()→ Trueabc123.isalpha()→ Falseisspace()判断字符串是否全为空白字符 \n\t.isspace()→ Truecapitalize()将字符串首字符转为大写其余转为小写python.capitalize()→ “Python”title()将字符串每个单词的首字符转为大写hello world.title()→ “Hello World”center()将字符串居中指定总长度填充指定字符默认空格abc.center(5, -)→ “-abc-”zfill()字符串左侧补0达到指定长度常用于数字格式化123.zfill(5)→ “00123”replace()替换子串重复列强调重要性同上写在最后内置函数比较多记住常用的就行