精华内容
下载资源
问答
  • 这是搜索到的一段progress bar的代码:from __future__ import print_function# Print iterations progressdef printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = ...

    这是搜索到的一段progress bar的代码:

    from __future__ import print_function

    # Print iterations progress

    def printProgressBar (iteration, total, prefix = '', suffix = '', decimals = 1, length = 100, fill = '|'):

    """

    Call in a loop to create terminal progress bar

    @params:

    iteration - Required : current iteration (Int)

    total - Required : total iterations (Int)

    prefix - Optional : prefix string (Str)

    suffix - Optional : suffix string (Str)

    decimals - Optional : positive number of decimals in percent complete (Int)

    length - Optional : character length of bar (Int)

    fill - Optional : bar fill character (Str)

    """

    percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))

    filledLength = int(length * iteration // total)

    bar = fill * filledLength + '-' * (length - filledLength)

    print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end = '\r')

    # Print New Line on Complete

    if iteration == total:

    print()

    from time import sleep

    # A List of Items

    items = list(range(0, 57))

    l = len(items)

    # Initial call to print 0% progress

    printProgressBar(0, l, prefix = 'Progress:', suffix = 'Complete', length = 50)

    print('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end = '\r')

    这里的 第一个 \r 起到了什么作用呢? 我知道这个是让光标回到行首 这个end='r'不是已经在每一行都做这个操作了吗?

    另外:如果去掉第一个r 也能显示进度条 但是很不流畅,好像缓冲区没有在每一次print的时候清空,难道r还有清空缓冲区的作用?

    展开全文
  • python函数多个返回值You can return many values ... 您可以从Python中函数返回许多值。 To achieve this, return a data structure with several values, such as a list of the total number of hours to wr...

    python函数多个返回值

    You can return many values from a function in Python.

    您可以从Python中的函数返回许多值。

    To achieve this, return a data structure with several values, such as a list of the total number of hours to write every week:

    为此,请返回一个具有多个值的数据结构,例如每周要写的总小时数的列表:

    def hours_to_write(happy_hours):
       week1 = happy_hours + 2
       week2 = happy_hours + 4
       week3 = happy_hours + 6
       return [week1, week2, week3]
     
    print(hours_to_write(4))
    # [6, 8, 10]

    Python data structures are intended to contain data collections using functions that can be returned.

    Python数据结构旨在包含使用可以返回的函数的数据集合。

    In this article, we will see how to return multiple values from such data structures — namely dictionaries, lists, and tuples — as well as with a class and data class (Python 3.7+).

    在本文中,我们将看到如何从此类数据结构(即字典,列表和元组)以及类和数据类(Python 3.7+)中返回多个值。

    1.使用字典 (1. Using a Dictionary)

    A dictionary includes combinations of key values inside curly braces ({}). Every item in a dictionary has a key/value combination. An item consists a key and the corresponding value that creates a pair (key:value). Dictionaries are optimized when the key is known to access values.

    字典在花括号( {} )中包含键值的组合。 字典中的每个项目都有键/值组合。 一个项目包含一个键和创建一对的对应值( key:value )。 当已知键可访问值时,将优化字典。

    Here is a dictionary of people. The name of the person is a key and their age is the corresponding value:

    这是人们的字典。 人的名字是关键,年龄是相应的值:

    people={
    'Robin': 24,
    'Odin': 26,
    'David': 25
    }

    This is how to write a function that returns a dictionary with a key/value pair:

    这是编写如何返回带有键/值对的字典的函数的方法:

    # A Python program to return multiple values using dictionary
    # This function returns a dictionary 
    def people_age(): 
        d = dict(); 
        d['Jack'] = 30
        d['Kim'] = 28
        d['Bob'] = 27
        return d
    d = people_age() 
    print(d)
    # {'Bob': 27, 'Jack': 30, 'Kim': 28}

    2.使用清单 (2. Using a List)

    A list is similar to an array of items formed using square brackets, but it is different because it can contain elements of different types. Lists are different from tuples since they are mutable. That means a list can change. Lists are one of Python’s most powerful data structures because lists do not often have to remain similar. A list may include strings, integers, and items. They can even be utilized with stacks as well as queues.

    列表与使用方括号形成的项目数组相似,但是有所不同,因为它可以包含不同类型的元素。 列表与元组不同,因为它们是可变的。 这意味着列表可以更改。 列表是Python最强大的数据结构之一,因为列表不必经常保持相似。 列表可以包括字符串,整数和项目。 它们甚至可以与堆栈以及队列一起使用。

    # A Python program to return multiple values using list
     
    def test(): 
        str1 = "Happy"
        str2 = "Coding"
        return [str1, str2];
     
    list = test() 
    print(list)
    # ['Happy', 'Coding']

    Here’s another example. It returns a list that includes natural numbers:

    这是另一个例子。 它返回一个包含自然数的列表:

    def natural_numbers(numbers = []):
       
       for i in range(1, 16):
           numbers.append(i)
       return numbers
     
    print(natural_numbers())
    # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

    3.使用元组 (3. Using a Tuple)

    A tuple is an ordered, immutable Python object. Tuples are normally used to store collections of heterogeneous data. Tuples are similar to lists except that they cannot be altered after they are defined. Typically, tuples are quicker than lists. A tuple may be created by separating items with commas: x, y, zor (x, y, z).

    元组是有序的,不变的Python对象。 元组通常用于存储异构数据的集合。 元组与列表相似,不同之处在于它们在定义后不能更改。 通常,元组比列表快。 通过用逗号分隔项目x, y, z(x, y, z)可以创建元组。

    The following example uses a tuple to store data about an employee (their name, experience in years, and company name):

    下面的示例使用一个元组来存储有关员工的数据(他们的姓名,工作年限和公司名称):

    Bob = ("Bob", 7, "Google")

    Here’s how to write a function that returns a tuple:

    这是编写返回元组的函数的方法:

    # A Python program to return multiple values using tuple
    # This function returns a tuple 
    def fun(): 
        str1 = "Happy"
        str2 = "Coding"
        return str1, str2; # we could also write (str1, str2)
    str1, str2= fun() 
    print(str1) 
    print(str2)
    # Happy
      Coding

    Note that we omitted parentheses in the return statement. The reason is you can return a tuple by separating each item with a comma, as shown in the example above.

    请注意,我们在return语句中省略了括号。 原因是您可以通过用逗号分隔每个项目来返回元组,如上面的示例所示。

    Keep in mind that the tuple is simply created by the comma — not the parentheses. The parentheses are optional unless you’re using blank tuples or syntactic uncertainty has to be prevented.

    请记住,元组仅由逗号而不是括号创建。 除非您使用空白元组或必须避免语法不确定性,否则括号是可选的。

    Refer to the official Python 3 documentation for further clarity on tuples.

    有关元组的进一步说明,请参阅Python 3官方文档

    Below is an example of a function that uses parentheses to return a tuple:

    以下是使用括号返回元组的函数示例:

    def student(name, class):
    return (name, class)
    print(student("Brayan", 10))
    # ('Brayan', 10)

    It’s easy to confuse tuples for lists. After all, they are both bags that consist of items. But note the fundamental difference:

    混淆元组的列表很容易。 毕竟,它们都是由物品组成的袋子。 但请注意基本区别:

    1. Tuples can’t be altered.

      元组不能更改。
    2. Lists can be altered.

      列表可以更改。

    4.使用对象 (4. Using an Object)

    This is identical to C/C++ as well as Java. A class (in C, a struct) can be formed to hold several attributes and return a class object:

    这与C / C ++和Java相同。 可以形成一个类(在C中为一个结构),以容纳多个属性并返回一个类对象:

    # A Python program to return multiple values using class 
    class Intro: 
     def __init__(self): 
      self.str1 = "hello"
      self.str2 = "world"
    # This function returns an object of Intro
    def message(): 
     return Intro() 
     
    x = message() 
    print(x.str1) 
    print(x.str2)
    # hello
      world

    5.使用数据类(Python 3.7+) (5. Using a Data Class (Python 3.7+))

    Using Python 3.7’s data classes, this is how you can return a class with automatically added unique methods, typing, and other useful tools:

    使用Python 3.7的数据类,可以通过自动添加的唯一方法,类型和其他有用的工具来返回类:

    from dataclasses import dataclass
    @dataclass
    class Item_list:
        name: str
        perunit_cost: float
        quantity_available: int = 0
        def total_cost(self) -> float:
            return self.perunit_cost * self.quantity_available
        
    book = Item_list("better programming.", 50, 2)
    x = book.total_cost()
    print(x)
    print(book)
    # 100
      Item_list(name='better programming.', perunit_cost=50, 
      quantity_available=2)

    See the official documentation for further clarity on data classes.

    有关数据类的进一步说明,请参见官方文档

    关键要点 (The Key Takeaway)

    The primary objective of this article is to help you return several values from a Python function. As we have seen, there are numerous methods you can use to achieve that.

    本文的主要目的是帮助您从Python函数返回几个值。 如我们所见,可以使用多种方法来实现这一目标。

    The most crucial point is that you need to learn concepts and develop your programming skills.

    最关键的一点是,您需要学习概念并发展编程技能。

    Thanks for reading.

    谢谢阅读。

    翻译自: https://medium.com/better-programming/how-to-return-multiple-values-from-a-function-in-python-3-ddb131279cd

    python函数多个返回值

    展开全文
  • 主要介绍了Python中functools模块的常用函数解析,分别讲解了functools.cmp_to_key,functools.total_ordering,functools.reduce,functools.partial,functools.update_wrapper和functools.wraps的用法,需要的朋友...
  • Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools模块函数概览functools.cmp_to_key(func)functools.total_...

    Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。

    functools模块函数概览

    functools.cmp_to_key(func)

    functools.total_ordering(cls)

    functools.reduce(function, iterable[, initializer])

    functools.partial(func[, args][, *keywords])

    functools.update_wrapper(wrapper, wrapped[, assigned][, updated])

    functools.wraps(wrapped[, assigned][, updated])

    functools.cmp_to_key()

    语法:

    functools.cmp_to_key(func)

    该函数用于将旧式的比较函数转换为关键字函数。

    旧式的比较函数:接收两个参数,返回比较的结果。返回值小于零则前者小于后者,返回值大于零则相反,返回值等于零则两者相等。

    关键字函数:接收一个参数,返回其对应的可比较对象。例如 sorted(), min(), max(), heapq.nlargest(), heapq.nsmallest(), itertools.groupby() 都可作为关键字函数。

    在 Python 3 中,有很多地方都不再支持旧式的比较函数,此时可以使用 cmp_to_key() 进行转换。

    示例:

    sorted(iterable, key=cmp_to_key(cmp_func))

    functools.total_ordering()

    语法:

    functools.total_ordering(cls)

    这是一个类装饰器,用于自动实现类的比较运算。

    我们只需要在类中实现 __eq__() 方法和以下方法中的任意一个 __lt__(), __le__(), __gt__(), __ge__(),那么 total_ordering() 就能自动帮我们实现余下的几种比较运算。

    示例:

    @total_ordering

    class Student:

    def __eq__(self, other):

    return ((self.lastname.lower(), self.firstname.lower()) ==

    (other.lastname.lower(), other.firstname.lower()))

    def __lt__(self, other):

    return ((self.lastname.lower(), self.firstname.lower()) <

    (other.lastname.lower(), other.firstname.lower()))

    functools.reduce()

    语法:

    functools.reduce(function, iterable[, initializer])

    该函数与 Python 内置的 reduce() 函数相同,主要用于编写兼容 Python 3 的代码。

    functools.partial()

    语法:

    functools.partial(func[, *args][, **keywords])

    该函数返回一个 partial 对象,调用该对象的效果相当于调用 func 函数,并传入位置参数 args 和关键字参数 keywords 。如果调用该对象时传入了位置参数,则这些参数会被添加到 args 中。如果传入了关键字参数,则会被添加到 keywords 中。

    partial() 函数的等价实现大致如下:

    def partial(func, *args, **keywords):

    def newfunc(*fargs, **fkeywords):

    newkeywords = keywords.copy()

    newkeywords.update(fkeywords)

    return func(*(args + fargs), **newkeywords)

    newfunc.func = func

    newfunc.args = args

    newfunc.keywords = keywords

    return newfunc

    partial() 函数主要用于“冻结”某个函数的部分参数,返回一个参数更少、使用更简单的函数对象。

    示例:

    >>> from functools import partial

    >>> basetwo = partial(int, base=2)

    >>> basetwo.__doc__ = 'Convert base 2 string to an int.'

    >>> basetwo('10010')

    18

    functools.update_wrapper()

    语法:

    functools.update_wrapper(wrapper, wrapped[, assigned][, updated])

    该函数用于更新包装函数(wrapper),使它看起来像原函数一样。可选的参数是一个元组,assigned 元组指定要直接使用原函数的值进行替换的属性,updated 元组指定要对照原函数进行更新的属性。这两个参数的默认值分别是模块级别的常量:WRAPPER_ASSIGNMENTS 和 WRAPPER_UPDATES。前者指定了对包装函数的 __name__, __module__, __doc__ 属性进行直接赋值,而后者指定了对包装函数的 __dict__ 属性进行更新。

    该函数主要用于装饰器函数的定义中,置于包装函数之前。如果没有对包装函数进行更新,那么被装饰后的函数所具有的元信息就会变为包装函数的元信息,而不是原函数的元信息。

    functools.wraps()

    语法:

    functools.wraps(wrapped[, assigned][, updated])

    wraps() 简化了 update_wrapper() 函数的调用。它等价于 partial(update_wrapper, wrapped=wrapped, assigned, updated=updated)。

    示例:

    >>> from functools import wraps

    >>> def my_decorator(f):

    ... @wraps(f)

    ... def wrapper(*args, **kwds):

    ... print 'Calling decorated function'

    ... return f(*args, **kwds)

    ... return wrapper

    >>> @my_decorator

    ... def example():

    ... """Docstring"""

    ... print 'Called example function'

    >>> example()

    Calling decorated function

    Called example function

    >>> example.__name__

    'example'

    >>> example.__doc__

    'Docstring'

    如果不使用这个函数,示例中的函数名就会变成 wrapper ,并且原函数 example() 的说明文档(docstring)就会丢失。

    展开全文
  • Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools模块函数概览functools.cmp_to_key(func)functools.total_...

    Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。

    functools模块函数概览

    functools.cmp_to_key(func)

    functools.total_ordering(cls)

    functools.reduce(function, iterable[, initializer])

    functools.partial(func[, args][, *keywords])

    functools.update_wrapper(wrapper, wrapped[, assigned][, updated])

    functools.wraps(wrapped[, assigned][, updated])

    functools.cmp_to_key()

    语法:

    functools.cmp_to_key(func)

    该函数用于将旧式的比较函数转换为关键字函数。

    旧式的比较函数:接收两个参数,返回比较的结果。返回值小于零则前者小于后者,返回值大于零则相反,返回值等于零则两者相等。

    关键字函数:接收一个参数,返回其对应的可比较对象。例如 sorted(), min(), max(), heapq.nlargest(), heapq.nsmallest(), itertools.groupby() 都可作为关键字函数。

    在 Python 3 中,有很多地方都不再支持旧式的比较函数,此时可以使用 cmp_to_key() 进行转换。

    示例:

    functools.total_ordering()

    语法:

    functools.total_ordering(cls)

    这是一个类装饰器,用于自动实现类的比较运算。

    我们只需要在类中实现 __eq__() 方法和以下方法中的任意一个 __lt__(), __le__(), __gt__(), __ge__(),那么 total_ordering() 就能自动帮我们实现余下的几种比较运算。

    示例:

    functools.reduce()

    语法:

    functools.reduce(function, iterable[, initializer])

    该函数与 Python 内置的 reduce() 函数相同,主要用于编写兼容 Python 3 的代码。

    functools.partial()

    语法:

    functools.partial(func[, *args][, **keywords])

    该函数返回一个 partial 对象,调用该对象的效果相当于调用 func 函数,并传入位置参数 args 和关键字参数 keywords 。如果调用该对象时传入了位置参数,则这些参数会被添加到 args 中。如果传入了关键字参数,则会被添加到 keywords 中。

    partial() 函数的等价实现大致如下:

    partial() 函数主要用于“冻结”某个函数的部分参数,返回一个参数更少、使用更简单的函数对象。

    示例:

    functools.update_wrapper()

    语法:

    functools.update_wrapper(wrapper, wrapped[, assigned][, updated])

    该函数用于更新包装函数(wrapper),使它看起来像原函数一样。可选的参数是一个元组,assigned 元组指定要直接使用原函数的值进行替换的属性,updated 元组指定要对照原函数进行更新的属性。这两个参数的默认值分别是模块级别的常量:WRAPPER_ASSIGNMENTS 和 WRAPPER_UPDATES。前者指定了对包装函数的 __name__, __module__, __doc__ 属性进行直接赋值,而后者指定了对包装函数的 __dict__ 属性进行更新。

    该函数主要用于装饰器函数的定义中,置于包装函数之前。如果没有对包装函数进行更新,那么被装饰后的函数所具有的元信息就会变为包装函数的元信息,而不是原函数的元信息。

    functools.wraps()

    语法:

    functools.wraps(wrapped[, assigned][, updated])

    wraps() 简化了 update_wrapper() 函数的调用。它等价于 partial(update_wrapper, wrapped=wrapped, assigned, updated=updated)。

    示例:

    如果不使用这个函数,示例中的函数名就会变成 wrapper ,并且原函数 example() 的说明文档(docstring)就会丢失。

    原文链接:http://www.codebelief.com/article/2017/03/python-standard-library-functools-module/

    展开全文
  • 16212评论:1在Python中,采用下面的语法定义函数:def 函数名(参数):# 内部代码return 表达式例如:def summer(lis):"""这里是函数的说明文档,doc的位置:param lis: 参数列表的说明:return: 返回值的说明"""total ...
  • 我有一个形式如下的函数:def f(x, y):total = 0u = np.zeros(10)for i in range(0,10):u[i] = x * i + y* iif u[i] < 10:print('do something')total = total + u[i]return total当我尝试使用给定的x和y值时,此...
  • 我已经编写了一个函数,它基本上计算文档的逆频率(logbase10(total编号文件/编号包含特定单词的文档)我的代码:def tfidf(docs,doc_freqs):res = []t = sum(isinstance(i, list) for i in docs)for key,val in doc_...
  • 1. 函数的参数在Python中函数的参数可以有默认值,也支持使用可变参数,所以Python并不需要像其他语言一样支持函数的重载,因为我们在定义一个函数的时候可以让它有多种不同的使用方式。# 在参数名前面的*表示args...
  • Python 函数

    2021-03-27 22:06:24
    Python中函数可以定义 接受不确定数量的参数 ,这种参数被称为 '可变参数' 。可变参数有两种,即在参数前加 * 和 ** 1> 基于元组的可变参数(*可变参数) *可变参数在函数中被组装成一个元组。 示例代码如下...
  • Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。functools模块函数概览functools.cmp_to_key(func)functools.total_...
  • import sysimport timedef view_bar(num, total):rate = num / totalrate_num = int(rate * 100)r = '\r[%s%s]%d%% ' % ("="*num, " "*(100-num), num, )sys.stdout.write(r)sys.stdout.flush()#在python中,输出...
  • ## 全局和局部变量定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。.../usr/bin/python3total = 0 # 这是一个全局变量# 可写函数说明def sum( arg1, arg2 ):#返回2个参数的和."t...
  • 主要代码 #anconda怎么调用其他Python文件的函数 %run function_total.ipynb list_count_2009=list_...anconda调用同一文件夹下另外一个python文件函数的方法跟Parcharm类似 step1:将所有可能会被调用的函数放...
  • 我会在R中使用head(mymatrix),但我不知道如何在Pandas Python中执行此操作。当我打字时测向头(10)我得到。。。Int64Index: 10 entries, 0 to 9Data columns (total 14 columns):#Book_Date 10 non-null ...
  • 主要介绍了Python中functools模块的常用函数解析,分别讲解了partial、update_wrapper、wraps、total_ordering的用法,需要的朋友可以参考下
  • python中函数参数的定义方式有一下4中方式。 1)位置参数 2)关键字参数: 3)默认参数: 4)可变参数(args,kwargs): 一.位置参数 在我们在传参的时候,实参传递的顺序按照形参定义的顺序进行传递的传参方式。 #练习1...
  • python函数属性

    2019-09-26 19:26:29
    Python中函数的参数可以有默认值,也支持使用可变参数,所以Python并不需要像其他语言一样支持函数的重载,因为我们在定义一个函数的时候可以让它有多种不同的使用方式。 # 在参数名前面的*表示args是一个可变...
  • python函数

    2018-11-06 19:34:01
    def return def avg(x): mean_x = sum(x) / len(x) return mean_x a=avg([23, 24, 13, 34, 56, 78]) ...局部变量是在某个函数中声明的,只能在该函数中调用它 total = 0 def sum(para1,para2): total = par...
  • ❝我们在前面的章节,很多次的看到了在函数中调用别的函数的情况,如果一个函数在内部调用了自身,这个函数就被称为递归函数。❞高斯求和defsum_number(n):total=0foriinrange(1,n+1):total+=ireturntotalsum=sum_...
  • 任务如下:Write a function called nine_lines that uses the function three_lines(provided below) to print a total of nine lines.Now add a function named clear_screen that uses a combination of the...
  • python函数中默认参数的补充 题目:糖果平均分,为了公平起见,剩余的糖果需销毁;如果没有特别设定,默认平均分给3个人。 代码如下: def to_smash(total_candies, number_of_friends = 3): """Return the number...
  • 我在python脚本开始时声明这些变量:hours = 0mins = 0secs = 0然后我创建一个函数,并希望在函数中使用这些变量:def calc_running_total():hours = hours + int(running_total[0:2])mins = mins + int(running_total...
  • Python自带的 functools 模块提供了一些常用的高阶函数,也就是用于处理其它函数的特殊函数。换言之,就是能使用该模块对可调用对象进行处理。英文文档 一、functools模块函数概览 functools.cmp_to_key(func) ...
  • 复习了下函数,觉得全局变量和局部变量这点值得做下笔记,虽然很简单。...调用函数时,所有在函数内声明的变量名称都将被加入到作用域。如下实例: #!/usr/bin/python # -*- coding: UTF-8 -*- total = ...
  • 快速提问:我想在不带任何参数的情况下调用一个main函数,在main函数中,我还有其他几个函数有参数。我该怎么做呢?以下是多个功能:# Takes the Portfolio dictionay, unpacks the multiple tuples, and calculates...
  • 函数,接收n个数字,求这些数字的和# 函数名不定义为sum,避免与内置函数冲突def sum_func(*args):total = 0for i in args:total += ireturn totalprint(sum_func(1, 3, 4, 33, 44, 66))2.代码打印出来的a,b,c...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 201
精华内容 80
关键字:

python中total函数

python 订阅