为了账号安全,请及时绑定邮箱和手机立即绑定
  • # 对列表进行排序  

    numbers = [3, 1, 4, 1, 5, 9, 2]   sorted_numbers = sorted(numbers)   print(sorted_numbers)  # 输出: [1, 1, 2, 3, 4, 5, 9]     


    # 对元组进行排序(注意:元组是不可变的,所以不能直接排序,但可以转换为列表后排序)   

    tuple_numbers = (3, 1, 4, 1, 5, 9, 2)   sorted_tuple_numbers =sorted(tuple_numbers)   print(sorted_tuple_numbers)  # 输出: [1, 1, 2, 3, 4, 5, 9]     


    # 对字典的键进行排序(返回的是键的列表)   dict_example = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}   sorted_keys = sorted(dict_example.keys())   print(sorted_keys)  # 输出: ['apple', 'banana', 'orange', 'pear']     


    # 也可以对字典的项(键值对)进行排序,使用items()   sorted_items = sorted(dict_example.items())   print(sorted_items)  # 输出: [('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]

    查看全部
  • 返回闭包不能引用循环变量,请改写count()函数,让它正确返回能计算1x1、2x2、3x3的函数。



    def count():
       fs = []
       for i in range(1, 4):
           def f(j):
               def g():
                   return j*j
               return g
           r = f(i)
           fs.append(r)
       return fs
    f1, f2, f3 = count()
    print(f1(), f2(), f3())

    查看全部
    0 采集 收起 来源:Python的闭包

    2024-08-14

  • 请编写一个函数calc_prod(list_),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。


    from functools import reduce

    def calc_prod(list_):
       def lazy_prod():
           def f(x, y):
               return x * y
           return reduce(f, list_, 1)
       return lazy_prod

    f = calc_prod([1, 2, 3, 4])
    f()

    查看全部
    0 采集 收起 来源:Python返回函数

    2024-08-14

  • 对字符串排序时,有时候忽略大小写排序更符合习惯。请利用sorted()高阶函数,实现忽略大小写排序的算法。
    输入:['bob', 'about', 'Zoo', 'Credit']
    输出:['about', 'bob', 'Credit', 'Zoo']



    def k(item):
       return item.lower()

    sorted(['bob', 'about', 'Zoo', 'Credit'], key=k)

    查看全部
  • 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:1, 4, 9, 16, 25, 36, 49, 64, 81, 100。



    import math

    def is_sqrt(x):
       r = int(math.sqrt(x))
       return r * r == x

    for item in filter(is_sqrt, range(1, 101)):
       print(item)

    查看全部
  • Python内置了求和函数sum(),但没有求积的函数,请利用recude()来求积

    输入:[1, 3, 5, 7, 9]
    输出:13579的结果



    from functools import reduce


    def f(x, y):

        return x * y


    print(reduce(f, [1,3,5,7,9]))

    查看全部
  • 假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:

    输入:['alice', 'BOB', 'CanDY']
    输出:['Alice', 'Bob', 'Candy']



    def format_name(s):
       return s[0].upper() + s[1:].lower()

    for item in map(format_name, ['alice', 'BOB', 'CanDY']):
       print(item)

    查看全部
  • 计算平方根可以利用math包的sqrt()函数。


    import math

    def add(x, y, f):
       return f(x) + f(y)

    print(add(25, 9, math.sqrt))

    查看全部
  • 通过w的打开方式打开文件,会清空文件的内容,这在很多场景下是不合适的,比如写系统日志的时候,需要累积随时间推移的所有数据。


    Python提供文件追加内容的打开模式,可以往文件尾部添加内容,又不清空文件原有的内容。

    https://img1.sycdn.imooc.com/66b9c07200011d3903670158.jpg

    f = open('test.txt', 'a')
    f.write('Hello Everyone\n')
    f.close()


    使用a的打开方式打开文件,文件游标默认是在文件的尾部,因此,可以便捷的往文件尾部添加内容,除此以外,文件对象还提供seek()方法,可以移动文件的游标位置,它接受一个参数,表示文件的位置,0:文件首部,1:当前位置,2:文件尾部,通过seek()可以把文件游标移动到文件首部但不删除文件的内容。


    f = open('test.txt', 'a+')
    content = f.readlines()
    print(content) # ==> []
    f.seek(0)
    content = f.readlines()
    print(content) # ==> ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']


    第一次print(content)的时候,由于文件游标在文件的尾部,所以readlines()读取不到任何数据,打印了空的结果,第二次print(content)的时候,由于通过seek(0),文件游标移动到了文件的首部,因此readlines()就返回了文件所有的内容。

    查看全部
  • 打开文件之后,就可以读取文件的内容,文件对象提供多种读取文件内容的方法。
    打开test.txt文件:

    f = open('test.txt', 'r') # 打开test.txt文件
    f.close() # 关闭文件


    文件对象提供read()方法,可以读取文件中的若干个字符,它提供一个参数size,可以指定读取字符的数量。

    s = f.read(5)
    print(s) # ==> Hello

    当read()之后,访问文件的游标就会移动到第六个字符前面,此时,继续read,将得到Hello后面的结果。

    s = f.read(6)
    print(s) # ==> ' World'


    文件对象提供readline()方法,和read()方法类似,可以读取文件中的若干个字符,它也提供一个参数size,可以指定读取字符的数量,不过和read()方法不同的是,readline()方法遇到一行结束的时候,就会返回。

    f.close()
    f = open('test.txt', 'r') # 重新打开文件
    s = f.readline(20)
    print(s)  # ==> 'Hello World.\n'

    readline最多返回一行的所有字符。


    文件对象提供readlines()方法,可以读取多行字符,返回一个列表。它提供一个hint参数,表示指定读取的行数,没有指定则默认以列表的形式返回文件所有的字符串。

    f.close()
    f.open('test.txt', 'r')
    s = f.readlines()
    print(s) # ==> ['Hello World.\n', 'Hello Python.\n', 'Hello Imooc.\n']

    查看全部
  • 除了文本以外,还有大量的非文本文件,比如图片、压缩文件、视频文件、音乐文件等等,这种文件统称为二进制文件,在Python中打开二进制文件,需要不同的打开模式。

    https://img1.sycdn.imooc.com/66b9ae8e0001d23104020298.jpg

    查看全部
  • open()函数有若干个参数,比较重要的是以下三个参数:

    1.文件路径:指定需要打开的文件的文件路径

    2.打开模式:针对不同文件(二进制文件、文本文件)以及不同操作(读操作、写操作),会有不同的打开模式

    3.编码:设定打开文件的默认编码

    https://img1.sycdn.imooc.com/66b9abd20001651f03870621.jpg


    https://img1.sycdn.imooc.com/66b9ac6f0001414604090237.jpg

    查看全部
  • Python很多的操作都是通过内建函数来实现的,比如最熟悉的加减乘除,都是通过内建函数来实现的,分别是__add__、__sub__、__mul__、__truediv__。因此,只要我们的自定义类实现了相关的内建函数,我们的类对象,也可以做到加减乘除。



    Rational类虽然可以做加法,但无法做减法、乘法和除法,请继续完善Rational类,实现四则运算。


    https://img1.sycdn.imooc.com/66b5ad8800019d9c05600479.jpg

    查看全部
  • 斐波那契数列是由 0, 1, 1, 2, 3, 5, 8...构成。

    请编写一个Fib类,Fib(10)表示数列的前10个元素,print Fib(10) 可以打印出数列的前 10 个元素,len(Fib(10))可以正确返回数列的个数10。

    https://img1.sycdn.imooc.com/66b58c97000114ba03190363.jpg

    查看全部
  • 请给Student 类定义__str__和__repr__方法,使得能打印出'Student: name, gender, score'。

    https://img1.sycdn.imooc.com/66b589d90001ab5905270332.jpg

    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!