189 8069 5689

python内建函数教程,python自建函数

python中如何调用自己写的函数

在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r’自定义的模块路径’)实例如下:

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了西峰免费建站欢迎大家使用!

1、在E:pycharm新建hello.py实现基础功能函数(定义一个hello()函数)

2、 调用自定义的函数

3、 运行结果为:

更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中如何调用自己写的函数的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

python文作操作函数open()

1.并非只能访问文本文件

open可以访问任何形式的文件,在访问非文本格式文件(二进制文件)的时候,访问模式通常加上‘b’(即二进制模式:‘rb’或‘wb’),但并不必须,依情况而定

2.路径是填写在前面的filename参数处的

如你的例子,若要只读这个文件,则是:

open('D:\\123.txt', 'r')

(由于\是转义符,所以要将他再转义,才能得到\符号本身)

若要写入,则是:

open('D:\\123.txt', 'w')

以此类推

如果是不加路径,只有一个文件名:

open('123.txt', 'r')

则会在python运行的当前目录下寻找该文件名的文件

另:读模式(r)必须保证文件存在,写模式(w)至少要保证文件所在目录存在(文件本身可以不存在)

如果不满足,则系统会抛出一个IOError

Python中冷门但非常好用的内置函数

Python中有许多内置函数,不像print、len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性

Counter

collections在python官方文档中的解释是High-performance container datatypes,直接的中文翻译解释高性能容量数据类型。这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择。在python3.10.1中它总共包含以下几种数据类型:

容器名简介

namedtuple() 创建命名元组子类的工厂函数

deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop)

ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面

Counter 字典的子类,提供了可哈希对象的计数功能

OrderedDict 字典的子类,保存了他们被添加的顺序

defaultdict 字典的子类,提供了一个工厂函数,为字典查询提供一个默认值

UserDict 封装了字典对象,简化了字典子类化

UserList 封装了列表对象,简化了列表子类化

UserString 封装了字符串对象,简化了字符串子类化

其中Counter中文意思是计数器,也就是我们常用于统计的一种数据类型,在使用Counter之后可以让我们的代码更加简单易读。Counter类继承dict类,所以它能使用dict类里面的方法

举例

#统计词频

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

result = {}

for fruit in fruits:

if not result.get(fruit):

result[fruit] = 1

else:

result[fruit] += 1

print(result)

#{'apple': 2, 'peach': 3, 'lemon': 1}下面我们看用Counter怎么实现:

from collections import Counter

fruits = ['apple', 'peach', 'apple', 'lemon', 'peach', 'peach']

c = Counter(fruits)

print(dict(c))

#{'apple': 2, 'peach': 3, 'lemon': 1}显然代码更加简单了,也更容易阅读和维护了。

elements()

返回一个迭代器,其中每个元素将重复出现计数值所指定次。元素会按首次出现的顺序返回。如果一个元素的计数值小于1,elements()将会忽略它。

c = Counter(a=4, b=2, c=0, d=-2)

sorted(c.elements())

['a', 'a', 'a', 'a', 'b', 'b']most_common([n])

返回一个列表,其中包含n个最常见的元素及出现次数,按常见程度由高到低排序。如果n被省略或为None,most_common()将返回计数器中的所有元素。计数值相等的元素按首次出现的顺序排序:

Counter('abracadabra').most_common(3)

[('a', 5), ('b', 2), ('r', 2)]这两个方法是Counter中最常用的方法,其他方法可以参考 python3.10.1官方文档

实战

Leetcode 1002.查找共用字符

给你一个字符串数组words,请你找出所有在words的每个字符串中都出现的共用字符(包括重复字符),并以数组形式返回。你可以按任意顺序返回答案。

输入:words = ["bella", "label", "roller"]

输出:["e", "l", "l"]

输入:words = ["cool", "lock", "cook"]

输出:["c", "o"]看到统计字符,典型的可以用Counter完美解决。这道题是找出字符串列表里面每个元素都包含的字符,首先可以用Counter计算出每个元素每个字符出现的次数,依次取交集最后得出所有元素共同存在的字符,然后利用elements输出共用字符出现的次数

class Solution:

def commonChars(self, words: List[str]) - List[str]:

from collections import Counter

ans = Counter(words[0])

for i in words[1:]:

ans = Counter(i)

return list(ans.elements())提交一下,发现83个测试用例耗时48ms,速度还是不错的

sorted

在处理数据过程中,我们经常会用到排序操作,比如将列表、字典、元组里面的元素正/倒排序。这时候就需要用到sorted(),它可以对任何可迭代对象进行排序,并返回列表

对列表升序操作:

a = sorted([2, 4, 3, 7, 1, 9])

print(a)

# 输出:[1, 2, 3, 4, 7, 9]对元组倒序操作:

sorted((4,1,9,6),reverse=True)

print(a)

# 输出:[9, 6, 4, 1]使用参数:key,根据自定义规则,按字符串长度来排序:

fruits = ['apple', 'watermelon', 'pear', 'banana']

a = sorted(fruits, key = lambda x : len(x))

print(a)

# 输出:['pear', 'apple', 'banana', 'watermelon']all

all() 函数用于判断给定的可迭代参数iterable中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False外都算True。注意:空元组、空列表返回值为True。

all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0

True

all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素

False

all([0, 1,2, 3]) # 列表list,存在一个为0的元素

False

all(('a', 'b', 'c', 'd')) # 元组tuple,元素都不为空或0

True

all(('a', 'b', '', 'd')) # 元组tuple,存在一个为空的元素

False

all((0, 1, 2, 3)) # 元组tuple,存在一个为0的元素

False

all([]) # 空列表

True

all(()) # 空元组

Trueany函数正好和all函数相反:判断一个tuple或者list是否全为空,0,False。如果全为空,0,False,则返回False;如果不全为空,则返回True。

F-strings

在python3.6.2版本中,PEP 498提出一种新型字符串格式化机制,被称为 “字符串插值” 或者更常见的一种称呼是F-strings,F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:

s1='Hello'

s2='World'

print(f'{s1} {s2}!')

# Hello World!在F-strings中我们也可以执行函数:

def power(x):

return x*x

x=4

print(f'{x} * {x} = {power(x)}')

# 4 * 4 = 16而且F-strings的运行速度很快,比传统的%-string和str.format()这两种格式化方法都快得多,书写起来也更加简单。

本文主要讲解了python几种冷门但好用的函数,更多内容以后会陆陆续续更新~

python、什么是内建函数?

python内建函数总结

1. abs(x)

abs()函数返回数字(可为普通型、长整型或浮点型)的绝对值。如果给出复数,返回值就是该复数的模。例如:

print abs(-2,4)

2.4

print abs(4+2j)

4.472135955

2. apply(function,args[,keywords])

apply()函数将args参数应用到function上。function参数必须是可调用对象(函数、方法或其他可调用对象)。args参数必须以

序列形式给出。列表在应用之前被转换为元组。function对象在被调用时,将args列表的内容分别作为独立的参数看待。例如:

apply(add,(1,3,4))

等价于

add(1,3,4)

在以列表或元组定义了一列参数,且需要将此列表参数分别作为个个独立参数使用的情况下,必须使用apply()函数。在要把变长参数列应用到已函数上时,apply()函数非常有用。

可选项keywords参数应是个字典,字典的关键字是字符串。这些字符串在apply()函数的参数列末尾处给出,它们将被用作关键字参数。

3. buffer(object[,offset[,size]])

如果object对象支持缓存调用接口buffer()函数就为object对象创建一个新缓存。这样的对象包括字符串、数组和缓存。该新缓存通过使用从

offset参数值开始知道该对象末尾的存储片段或从offset参数值开始直到size参数给出的尺寸为长度的存储片段来引用object对象。如果没

给出任何选项参数,缓存区域就覆盖整个序列,最终得到的缓存对象是object对象数据的只读拷贝。

缓存对象用于给某个对象类型创建一个更友好的接口。比如,字符串对象类型通用缓存对象而变得可用,允许逐个字节地访问字符串中的信息。

4. callable(object)

callable()函数在object对象是可调用对象的情况下,返回真(true);否则假(false),可调用对象包括函数、方法、代码对象、类(在调用时返回新的实例)和已经定义‘调用’方法的类实例

5. chr(i)

chr()函数返回与ASCII码i相匹配的一个单一字符串,如下例所示:

print chr(72)+chr(101)+chr(108)+chr(111)

hello

chr()函数是ord()函数的反函数,其中ord()函数将字符串转换回ASCII整数码,参数i的取值应在0~255范围内。如果参数i的取值在此范围之外,将引发ValueError异常。

6. cmp(x,y)

cmp()函数比较x和y这两个对象,且根据比较结果返回一个整数。如果xy,则返回正数。请注意,此函数特别用来比较数值大小,而不是任何引用关系,因而有下面的结果:

a=99

b=int('99')

cmp(a,b)

7. coerce(x,y)

coerce()函数返回一个元组,该元组由两个数值型参数组成。此函数将两个数值型参数转换为同一类型数字,其转换规则与算术转换规则一样。一下是两个例子:

a=1

b=1.2

coerce(a,b)

(1.0,1.2)

a=1+2j

b=4.3e10

coerce(a,b)

((1+2j),(43000000000+0j))

8 compile(string,filename,kind)

compile()函数将string编译为代码对象,编译生成的代码对象接下来被exec语句执行,接着能利用eval()函数对其进行求值。

filename参数应是代码从其中读出的文件名。如果内部生成文件名,filename参数值应是相应的标识符。kind参数指定string参数中所含代码的类别。

举例如下:

a=compile(‘print “Hello World”’,’’,’single’)

exec(a)

Hello World

eval(a)

Hello World

9. complex(real,[image])

Complex()函数返回一个复数,其实部为real参数值。如果给出image参数的值,则虚部就为image;如果默认image参数,则虚部为0j。

10. delattr(object,name)

delattr()函数在object对象许可时,删除object对象的name属性,此函数等价于如下语句:

del object.attr

而delattr()函数允许利用编程方法定义来定义object和name参数,并不是在代码中显示指定。

python中的filter函数怎么用

python filter内建函数

filter函数是python内建函数,可以操作任何可迭代类型,如list,tuple,string.

filter需要带上一个函数function和一个可迭代序列作为参数。filter()将调用该function作用于每一个可迭代序列的元素,并返回一个由该function验证后返回值为true的元素组成新的可迭代序列,新序列的类型保持与filter参数序列的类型一致

2.filter与数字

下面用这个例子来说明:

#建个数字列表

numbers = [1,5,9,8,4,6,3,7]

#定义一个过滤标准,取小于5的数

def lessThanFive(element):

return element  5

print filter(lessThanFive, numbers)

输出结果是列表:[1,4,3]

解说:此处的过滤函数lessThanFive必需带入一个参数(filter()会调用lessThanFive,参数是列表nembers中的每一个元素,一次一个)。filter()返回所有值都是小于5的列表

3.filter与字符串

下面用如下例子说明:

#定义元组类型

names = ('Jack', 'Jill, 'Steve', '')

#筛选出名字

new_names = filter(None, names)

print new_names

输出结果是元组:

('Jack', 'Jill, 'Steve')

在元组names最后一个名字是空字符串,而filter的第一个参数是None,这说明需要使用identity函数(该函数是简单的返回该元素的)

因为python对空字符串,0和None作为False,所以上面的filter的语句就是移除空元素。

4.filter和函数

目的:找出以J开头的名字

def startsWithJ(element):

if element:

return element[0] == 'J'

return False

j_names = filter(startsWithJ, names)

print j_names

输出结果是元组:('Jack', 'Jill')

注意到了吗,上面的2个结果都是tuple而不是list,再一次说明fliter的返回值类型与参数序列的类型保持一致

Python中的input()、isinstance()函数如何使用?

Python解释器内置了许多函数,这意味着我们无需定义,始终可以它们。接下来和大家一起讨论一个常用的内建函数-input()和isinstance()。

input()

input()函数读取用户输入,并转换成字符串:

a = input()  # 将input()返回的值赋值给a

Python

a            # 查看a的值(为字符串'Python')

'Python'

input()函数可以提供一个参数,用来提示用户:

b = input('请输入你最喜欢的水果:  ')   # 给用户必要的提示

请输入你最喜欢的水果:  香蕉

b

'香蕉'

需要注意的是,input()函数返回的值总是字符串,当用户输入的是数字也是这样,所以当使用它时一定要注意:

num = input('请输入一个数字: ')

请输入一个数字: 10

num + 9                            # 试图把num和数字相加

Traceback (most recent call last):

File "", line 1, in

TypeError: must be str, not int

num

'10'

type(num)                           # 查看num的数字类型

class 'str'

isinstance()

isinstance()函数用于检查对象是否为指定类(或者说数据类型)的实例。isintance()的第一个参数为一个对象,第二个参数为要检查的数据类型。

举个例子,比如有有一个变量,你想检查它是否为数字类型,可以使用isinstance()函数:

score = 90

result = isinstance(score, int)

if result:

...     print('score为int数据类型')

... else:

...     print('score不为int数据类型')

...

score为int数据类型

除了能检查是否为int类型外,isintance()还能检查其他数据类型(当然了),下面是一个综合示例:

pi = 3.14

name = 'Wang'

complex_num = 1 + 2j

isinstance(pi, float)              # 3.14为浮点数类型

True

isinstance(name, str)              # 'Wang'为字符串类型

True

isinstance(complex_num, complex)   #  1 + 2j为复数

True

isinstance()还可以验证某个对象是否为自定义的类型:

class Developer:                             # 定义一个叫做Developer的类

...

...     def __init__(self, name):                # __init__方法中,需要输入名字

...         self.name = name

...     def display(self):                       # 定义了display()方法

...         print("Developer:", self.name, "-")

...

class PythonDeveloper(Developer):            # PythonDeveloper类,继承了Developer类

...

...     def __init__(self, name, language):

...         self.name = name

...         self.language = language

...

...     def display(self):                        # 覆盖了父类的display方法

...         print("Python Developer:", self.name, "language:", self.language, "-")

...

dev = Developer('Zhang')                     # 创建一个Developer对象

dev.display()                                # 调用display()方法,以查看该对象

Developer: Zhang -

isinstance(dev, Developer)                   # 判断dev是否为Developer类,答案是肯定的

True

isinstance(dev, PythonDeveloper)             # 判断dev是否为PythonDeveloper类,当然不是

False

python_dev = PythonDeveloper('Liu', 'Python')  # 创建一个PythonDeveloper对象,注意PythonDeveloper是Developer的子类

python_dev.display()                          # 调用display方法

Python Developer: Liu language: Python -

isinstance(python_dev, Developer)             # 判断python_dev是否为Developer类,答案是肯定的

True

isinstance(python_dev, PythonDeveloper)      # 判断python是否为PythonDeveloper类,答案也是肯定的

True

关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。


网站名称:python内建函数教程,python自建函数
URL标题:http://cdxtjz.cn/article/hshcgg.html

其他资讯