python函数分为哪⼏种_python常⽤函数
Python常⽤函数
python中函数以两种形式呈现:⼀是可以⾃⼰定义的函数function,⽐如最常⽤的print()函数;另外⼀种是作为类的⽅法method调⽤,⽐如turtle.shapesize()。这两种形式本质上是相同的,不过是叫法不同,背后的语法实现细节我们没有必要深⼊研究。
⽆论是作为function还是method存在的函数,我们都是可以⾃定义的。⾸先我会给⼤家介绍常见函数的使⽤,最后以python中的turtle绘图为例向⼤家讲解python中函数的⾃定义及其蕴含的抽象思想,并且通过绘图的例⼦来向⼤家展⽰利⽤函数逐步进⾏抽象的过程。
函数的存在,⼤⼤提⾼了编程的效率,与传统的命令式编程相⽐,可以有效的降低代码数量,通过合理的定义函数,合理的使⽤函数参数,可以让程序更加简洁。python中的函数定义⽐较简单,但是函数参数的位置参数,关键字参数,默认参数、可变参数等理解起来⽐较困难。
下⾯介绍常⽤函数的使⽤
Print
print函数可以说是python中常⽤的函数,然⽽正是因为print是最常⽤的函数,⼤家往往在使⽤print函数的时候,忽视了print函数的强⼤功能
基础⽤法
print("Hello World!") # 这可能是print最简单的⽤法了,学习任何⼀门语⾔我们习惯上都会说Hello World!
Hello World!
在上⾯的例⼦中,我们直接调⽤了print函数,这样就可以在控制台输出内容,请注意,print是⽅法的名称后⾯跟着括号;括号⾥是要打印的内容,这⾥打印的 是字符串。如果想要打印多个字符串可以⽤逗号分隔要打印的内容。
print("Wanderfull", "qingdao", "IT Teacher")
Wanderfull qingdao IT Teacher
可以看到,我们⽤逗号分隔了要打印的字符串。print还可以直接输出数字:
print("Hello world!", 123)
Hello world! 123
我们还可以在print中输出变量值
name = 'langxm'
age = '28'
corp = "NetEase"
print("hello my name is", name, " i am ", age, " i worked at ", corp)
hello my name is langxm i am 28 i worked at NetEase
可以看到通过逗号分隔的⽅式,print完整的输出了⼀句话,但是这并⾮最简单的⽅式,这⾥就要⽤到格式化字符串的⽅法了format了嘛
name = 'langxm'
age = '28'
corp = "NetEase"
print("hello my name is {} i am {} i worked at {}".format(name, age, corp))
hello my name is langxm i am 28 i worked at NetEase
可以看到print输出了跟上⾯⼀样的句⼦。format函数的使⽤⼤⼤的简化了格式化字符串的输出,这就是最常⽤的⽤法了;其实print函数的强⼤远不⽌如此
str函数和int函数
str函数的作⽤是把数字等类型换换为字符串
int函数的作⽤是把字符串转为数字
type(1) # type函数的作⽤查看变量或者值的具体类型,我们可以看到1的类型是int
int
type('1')
str
可以看到type函数返回的类型是str也就是字符串类型,⽤途是什么呢?⽐如我们要做⼀个猜数字或者答数学题的程序,我们通过input函数获取的⽤户的输⼊,其实是字符串类型,我们需要转化为数字才能进⾏运算的
a = input()
b = input()
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
print(a + b)
2
3
a的类型是
b的类型是
23
我们可以看到利⽤input函数得到的⽤户输⼊的类型是字符串类型,字符串相加跟数值相加运算是不同的,我们预期的结果是2 + 3 = 5 然⽽实际上程序的结果是23,很明显程序出问题了,那么正确的做法是什么呢?正确的做法是转换变量类型。
a = input()
b = input()
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
print(int(a) + int(b))
2
3
a的类型是
b的类型是
5
可以看到虽然输⼊的仍然是str类型,但是我们在求和的时候把字符串类型的变量a和b转换为了整数类型,保证了运算结果的准确性。但是⼤家要注意的是a和b的类型其实还是字符串
a = input()
b = input()
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
print(int(a) + int(b))
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
2
3
a的类型是
b的类型是
5
a的类型是
b的类型是
既然a和b的类型没变为什么结果是正确的呢,因为我们是分别把a和b转换成了整数,其实这时候int(a)和int(b)与a和b是不同的变量了,我们实际进⾏加法运算的并⾮a和b⽽是int(a)和int(b),因为在python中基础的数值,字符串等都是不可变类型,我们不可以在变量本⾝做更改的。
拓展
a = int(input())
b = int(input())
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
print(a + b)
print("a的类型是{}".format(type(a)))
print("b的类型是{}".format(type(b)))
2
3
a的类型是
b的类型是
5
a的类型是
b的类型是
仔细观察上⾯的代码与之前代码的区别,体会那种写法更⽅便,如果⼩数相加应该怎么办呢?要⽤到float函数了。
数学常⽤函数
上⾯介绍了最基本的常⽤函数,那么下⾯我们来介绍⼀下python中的数学常⽤函数。
python是⼀门胶⽔语⾔,有着丰富的第三⽅库,⽽在python中,很多常⽤的功能都成为了python本⾝的标准模块,也就是说python内置了很多函数供我们使⽤,这些函数放在不同的模块⾥,我们使⽤的时候只需要导⼊就可以了。使⽤函数,⾸先理解函数本⾝的含义,和参数的意思,然后直接调⽤就可以了,不过调⽤的⽅法有两种,下⾯分别介绍
通过模块调⽤
在介绍数学模块的使⽤之前,我们简单介绍下import的导⼊,这就好⽐我们有很多⼯具箱,数学的,绘图的,⽹络的,我们import数学,就是把数学这个⼯具箱拿过来,然后⽤⾥⾯的⼯具,在⽤的是很好,我们要说明我们要⽤数学⼯具箱⾥⾯的某某函数,⽐如求绝对值,求平⽅等等。
下⾯我们来看看数学⼯具箱都有什么
import math # 导⼊math模块
help(math) # help⽅法可以查看模块都有哪些⽅法,建议⼤家在命令⾏运⾏这个代码
Help on built-in module math:
NAME
math
DESCRIPTION
This module is always available. It provides access to the
mathematical functions defined by the C standard.
FUNCTIONS
acos(...)
acos(x)
Return the arc cosine (measured in radians) of x.
help()可以帮助我们查看任意函数的⽤法,⽐如
import math
help(math.floor)
Help on built-in function floor in module math:
floor(...)
floor(x)
Return the floor of x as an Integral.
This is the largest integer <= x.
可以看到,通过help⽅法,我们看到了math模块的floor⽅法的详细使⽤说明。返回⼩于等于x参数的最⼤整数
import math
a = math.floor(2.3)
b = math.floor(2.7)
print(a, b)
2 2
可以看到2.3 2.7调⽤不⼩于floor的最⼤整数返回的都是2,这些math函数是通⽤的,在不同的语⾔中变量名基本上相同的
python新手函数
import math
print(dir(math)) # 我们可以通过dir⽅法查看任意模块所具有的的全部⽅法
# 想要查看具体⽅法或者函数的使⽤只需要⽤help⽅法查看⽅法的⽂档就是了
help(math.sin)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', '
floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf',
'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
Help on built-in function sin in module math:
sin(...)
sin(x)
Return the sine of x (measured in radians).
结合dir和help⽅法,我们可以⽅便的查看模块所具有的函数,和函数的使⽤⽅法,对于还是不理解的可以百度、⾕歌⼀下,讲真,python 中的函数千千万,很难说哪些更常⽤,可是你掌握了查看函数使⽤办法的⽅法,你就能够快速的到函数的使⽤⽅法了。
第⼆种使⽤math模块中函数的⽅法
from math import *
print(floor(2.7))
print(pow(2, 3))
2
8.0
可以看到我⽤from math import * 的⽅式导⼊了math中所有的函数,在使⽤floor函数的时候不再需要通过math来访问,这就好⽐,我们了⼀个⼯具箱,并且把⼯具箱⾥的⼯具都倒在⼯具台上了,⽤的时候直接拿,⽽不需要考虑是在哪个箱⼦⾥,这样⼦固然⽅便,但是有的时候容易造成函数名重复,引发意想不到的效果。我们也可以精确的指定我们想要⽤的函数。
from math import floor
print(floor(2.7))
2
通过这种⽅法,我们明确的指定,我们要⽤的是math模块中的floor函数,⽽其他⽅法因为没有导⼊是不能够调⽤的。
随机数的使⽤
import random
print(dir(random))
['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI',
'_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__spec__', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_itertools', '_log', '_pi', '_random',
'_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate',
'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random',
'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
可以看到我们导⼊了随机数模块random,并且打印了random中所有的函数,感兴趣的⽼师可以逐⼀⽤help⽅法查看这些⽅法的使⽤,我们这⾥介绍⼏个常见函数的使⽤。
from random import *

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。