首页 > 编程语言 >27.Python练习题

27.Python练习题

时间:2024-08-25 21:47:38浏览次数:6  
标签:练习题 27 outer name Python ret func print def

1,列举布尔值为False的值

0 False ‘’   []   {} None

 

2, 写函数:

根据范围获取其中3和7整除的所有数的和,并返回调用者:

符合条件的数字个数以及符合条件的数字的总和 如:def func(start ,end):

 

3,函数的默认返回值是什么?

None

 

4,简述break\continue\return的区别

Break:结束当前循环

Continue:结束本次循环进入下一次循环

Return:结束函数,并返回结果,默认为None

 

5,函数传递参数时,是引用还是复制值,并证明

引用

Name = ‘guanyu’

Def show():

Print(id(name))

print(id(name))

show()

 

6,简述三元运算书写格式以及应用场景

变量=值-if条件-else值二

将简单的条件判断精简写

 

7,简述lambda表达式书写格式以及应用场景

函数名 =lambda 形式:功能 不写函数名也可以

将简单的函数书写成匿名函数,减少代码

 

8,使用set 集合获取两个列表l1=[11,22,33],l2=[22,33,44]中相同的元素集合

l1=[11,22,33]

l2=[22,33,44]

set(l1)&set(l2)

 

9,定义函数统计一个字符串中大写字母,小写字母,数字的个数,并以字典为结果返回给调用者

 

10,简述函数的 位置参数,关键字参数,默认参数,可变长参数的特点以及注意事项

位置参数:按形参的位置传入 叫位置参数就是普通参数

关键字参数:传入实参时制定形参的值

默认参数:形参直接指定默认值的参数

可变长参数:*arge **kwargs,一个只能接收没有位置参数的实参和参入的列表,元组,俩

可以接受关键字参数,和字典格式

11,检查代码,如有错误请改正

# 1.

def func(x,y,z):

    print(x,y,z)

func(1,2,3)

 

#2

def func(x,y,z=5):

    print(x,y,z)

func(1,3,3)

 

#3

def func(x,y,*z):

    print(x,y,z)

func(1,2,3,4,5,6)

 

#4

def func(x,y,*z):

    print(x,y,z)

func(1,2,3,4,5,6,6)

 

#5

def func(x,*z,**y):

    print(x,y,z)

func(1,2,3)

# 你定义的函数 func 使用了混合参数类型:位置参数 x,可变位置参数 *z,和可变关键字参数 **y。在调用 func(1, 2, 3) 时,参数的分配如下:

# x 接收第一个位置参数 1。

# *z 接收剩余的所有位置参数,即 2 和 3,所以 z 是一个包含 2 和 3 的元组。

# **y 接收关键字参数,但由于调用时没有提供任何关键字参数,所以 y 是一个空字典。

# 因此,调用 func(1, 2, 3) 后,函数内部的 x, y, 和 z 的值分别是:

# x 是 1

# y 是 {}(空字典)

# z 是 (2, 3)(包含 2 和 3 的元组)

# 函数 func 的输出将是:

# 1 {} (2, 3)

 

#6

def func(x,*y,**z):

    print(x,y,z)

func(1,name=2,age=3) #键值对会传给字典

 

#7

def func(x,*y,**z):

    print(x,y,z)

func(1,2,3,4,name=2,age=3)

 

#8

def func(x=2,*y,**z):

    print(x,y,z)

func(name=2,age=3)

 

#9

def func(*y,**z):

    print(y,z)

func(1,2,3,4,5)

 

#10

def func(*y,**z):

    print(y,z)

func([1,2,3,4,5])

 

#11

def func(*y,**z):

    print(y,z)

func(*[1,2,3,4,5])

 

#12

def func(*y,**z):

    print(y,z)

func(*[1,2,3,4,5],name='alexa',age=29)

 

#13

def func(*y,**z):

    print(y,z)

func(*[1,2,3,4,5],{'name':'alexa','age':29})  #属于元组的内容

 

#14

def func(*y,**z):

    print(y,z)

func(*[1,2,3,4,5],**{'name':'alexa','age':29})  #属于元组的内容

 

# 15

def func1(x=1,*y,**z):

    print(x,y,z)

    return y

    print(x)

def func2(arg):

    ret = func1(name=arg)

    print(ret)

    result = func2("Fuck")

    print(result)

# 输出结果为:"name":"fuck") 0 Non

 

# 以下是修正后的代码:

def func1(x=1, *y, **z):

    print(x, y, z)

    return y

 

def func2(arg):

    ret = func1(name=arg)

    print(ret)

    return ret

 

# 调用 func2 并打印结果

result = func2("Fuck")

print(result)

 

 

 

 

 

 

 

 

# 15、书写执行结果(禁止运行代码)

def func(arg):

    arg.append(55)

 

li = [11, 22, 33, 44]

func(li)

print(li)

func(li)

print(li)

 

 

# 16,书写执行结果(禁止运行代码)

def f1(arg):

    print(arg + 100)

 

def f2(arg):

    ret = f1(arg + 1)

    print(arg)

    print(ret)

 

ret = f2(7)

print(ret)

 

 

17、简述Python3中的range函数和Python2..7中的range函数有什

么区别

3.x range不会生成值只有用的时候才会生成

2.7 range会直接生成一个列表,值已经生成

 

# 18、书写执行结果(禁止运行代码)

a = "goodboy %"

print(a)

# 输出结果为: goodboy %

 

b = "goodboy%d%%" % (12,)

print(b)

# 输出结果为: goodboy12%

 

19、简述对象和类的关系

如果值是某类型,那这个值就是这个类的对象

 

20、书写执行结果(禁止运行代码)

def func(al):

    return al + 100

 

func = lambda al: al + 200

ret = func(10)

print(ret)

# 输出结果为:210

 

21、内置函数all和any的区别

all是如果是空的,返回True如果非空,全真为真否侧为假

any是有一个为真就为真

 

22、简述文件打开模式’r’和'rb'的区别

r是只读模式打开,默认以uf-8格式

b是以二进制格式打开

 

 

 

23、将字符串"夏侯惇”转换成UTF-8编码的字节类型

S = '夏侯惇'

print(type(S))  # 这里应该是大写的 S

a = bytes(S, 'utf-8')

encoded_s = S.encode('utf-8')  # 这一行代码可以保留,但需要赋值给一个变量

print(a)

print(encoded_s)

 

24、利用内置函数将十进制数字12,分别转换成二进制、八进制、十六进制表示的字符串

# 十进制数字

decimal_number = 12

 

# 转换为二进制

binary_string = bin(decimal_number)

 

# 转换为八进制

octal_string = oct(decimal_number)

 

# 转换为十六进制

hexadecimal_string = hex(decimal_number)

 

# 打印结果

print(f"二进制: {binary_string}")

print(f"八进制: {octal_string}")

print(f"十六进制: {hexadecimal_string}")

 

25、简述内置函数globals(0、locals0作用

Globals()获取所有的全局变量

Locals()获取所有局部变量

 

26、利用内置函数zip(),实现功能

请获取字符串s="alex_is_good_guy"

 

l1 = ['alex', 22, 33, 44, 55]

l2 = ['is', 22, 33, 44, 55]

l3 = ['good', 22, 33, 44, 55]

l4 = ['guy', 22, 33, 44, 55]

 

# 提取字符串并拼接,方法1

s = "_".join([l1[0], l2[0], l3[0], l4[0]])

print(s)

 

# 方法2

# 使用 zip 函数将列表组合在一起

zipped_list = list(zip(l1, l2, l3, l4))

# 提取第一个元组并拼接成字符串

s = "_".join(zipped_list[0])

print(s)

 

 

27、判断输出结果是否相同?并可得到什么结论?

输出的两个值是否相同:相同

执行函数是调用变量值不是复制

def fl(arg):

    print(id(arg))

    n = 1111111

    print(id(n))

    f1(n)  # 这里假设 f1 函数已经定义

 

# 假设 f1 函数定义如下

def f1(arg):

    print(id(arg))

 

# 调用 fl 函数

fl(12345)

运行这段代码,你会得到以下输出(具体地址会根据运行环境有所不同):

4325729616  # id(arg) 的输出

4325730032  # id(n) 的输出

4325730032  # id(arg) 在 f1 函数中的输出

解释:

fl 函数接受一个参数 arg,并打印其内存地址 id(arg)。

在 fl 函数内部,定义了一个变量 n,并打印其内存地址 id(n)。

调用 f1(n),假设 f1 函数已经定义,并打印传递给它的参数的内存地址 id(arg)。

请确保在调用 fl 函数之前,f1 函数已经被正确定义。

 

解释:

 

fl 函数接受一个参数 arg,并打印其内存地址 id(arg)。

在 fl 函数内部,定义了一个变量 n,并打印其内存地址 id(n)。

调用 f1(n),假设 f1 函数已经定义,并打印传递给它的参数的内存地址 id(arg)。

请确保在调用 fl 函数之前,f1 函数已经被正确定义。

 

28、书写执行结果(禁止运行代码)

a.

# 定义一个全局变量 NAMELIST

NAMELIST = ["alex", "eric"]

 

def func():

    # 在函数内部定义一个同名局部变量

    NAMELIST = 123

    print("Inside func:", NAMELIST)

 

# 调用函数

func()

 

# 打印全局变量 NAMELIST

print("Outside func:", NAMELIST)

输出结果为:

Inside func: 123

Outside func: ['alex', 'eric']

 

b.

# 定义一个全局变量 NAMELIST
NAMELIST = ["alex", "eric"]

def func():
    # 使用 global 关键字声明 NAMELIST 为全局变量
    global NAMELIST
    # 修改全局变量 NAMELIST 的值
    NAMELIST = 123

# 调用函数
func()

# 打印全局变量 NAMELIST
print(NAMELIST)

输出结果为:123

 

 C.

# 定义一个全局变量 NAMELIST

NAMELIST = ["alex", "eric"]

def func():

    # 在函数内部修改全局变量 NAMELIST,添加元素 "seven"

    NAMELIST.append("seven")

# 调用函数

func()

# 打印全局变量 NAMELISTprint(NAMELIST)

输出结果为:['alex', 'eric', 'seven']

 

29、书写执行结果

#a

# 定义一个全局变量 name
name = "全局作用域的name"

def func():
    name = "seven"
    def outer():
        name = "eric"
        def inner():
            global name
            name = "我是诸葛亮..."
        inner()
        print("outer 中的 name:", name)
    outer()
    print("func 中的 name:", name)

# 调用函数
func()
print("全局作用域的 name:", name)

运行这段代码,你会得到以下输出:

outer 中的 name: eric

func 中的 name: seven

全局作用域的 name: 我是诸葛亮...

 

#b

# 定义一个全局变量 name

name = "root"

def func():

    name = "seven"

 

    def outer():

        name = "eric"

        def inner():

            global name

            name = "我是赵云..."

        inner()

        print("outer 中的 name:", name)

 

    outer()

    print("func 中的 name:", name)

 

ret = func()print("返回值 ret:", ret)print("全局作用域的 name:", name)

运行这段代码,你会得到以下输出:

outer 中的 name: eric

func 中的 name: seven

返回值 ret: None

全局作用域的 name: 我是赵云...

 

#c

# 定义一个全局变量 name

name = "root"

def func():

    name = "seven"

 

    def outer():

        name = "eric"

        def inner():

            global name

            name = "..."

        print("outer 中的 name (调用 inner 之前):", name)

        inner()

        print("outer 中的 name (调用 inner 之后):", name)

 

    outer()

    print("func 中的 name:", name)

 

ret = func()print("返回值 ret:", ret)print("全局作用域的 name (调用 func 之后):", name)

name = "root"print("全局作用域的 name (重新赋值之后):", name)

运行这段代码,你会得到以下输出:

outer 中的 name (调用 inner 之前): eric

outer 中的 name (调用 inner 之后): eric

func 中的 name: seven

返回值 ret: None

全局作用域的 name (调用 func 之后): ...

全局作用域的 name (重新赋值之后): root

 

#d

# 定义一个全局变量 name

name = "全局作用域的name"

def func():

    name = "seven"

 

    def outer():

        name = "eric"

 

        def inner():

            nonlocal name

            name = "我数张飞..."

            print("inner 中的 name:", name)

 

        inner()

        print("outer 中的 name:", name)

 

    outer()

    print("func 中的 name:", name)

 

ret = func()print("返回值 ret:", ret)print("全局作用域的 name:", name)

运行这段代码,你会得到以下输出:

inner 中的 name: 我数张飞...

outer 中的 name: 我数张飞...

func 中的 name: seven

返回值 ret: None

全局作用域的 name: 全局作用域的name

 

30、书写执行结果并解释每一步操作

#a.

# 定义一个全局变量 name
name = "五虎上将"

# 定义一个装饰器函数 outer
def outer(func):
    name = 'alex'
    def wrapper():
        print("执行前")
        func()
        print("执行后")
    return wrapper

# 定义一个被装饰的函数 show
@outer
def show():
    print(name)

# 调用被装饰的函数 show
show()

 

 

#b

name = "司马懿"

def outer():

    name = "很多"

    

    def inner():

        print(name)

    

    return inner

 

ret = outer()

ret()print(ret)

输出结果为:

很多

<function outer.<locals>.inner at 0x7f8b8c0b4e50>

 

#c

name = "孙权"
def outer():
    name = "少年"
    def inner():
        print(name)
    return inner
ret = outer()
ret()
print(ret)
result = ret()
print(result)

输出结果:

少年

<function outer.<locals>.inner at 0x000000000240E0D0>

少年

None

 

#d

name = "华雄"
def outer():
    name = "被斩"
    def inner():
        print(name)
    return inner  # 返回内存地址
ret = outer()
print(ret)
result = ret()  # 执行inner函数, 打印波多
print(result)  # inner无返回值打印的是None

输出结果为:

<function outer.<locals>.inner at 0x00000000024100D0>

被斩

None

 

3,E

name = "颜良"

def outer(func):

    def inner():

        name = "马下"

        func()

    return inner

def show():

    print(name)  # 打印全局的

 

outer(show)()

输出:颜良

 

31,书写执行结果并解释每一步操作

#a

def outer(func, zy):
    def inner(z):
        return func(z)
    return inner(zy)

def show(x):
    return x * x

ret = outer(show, 9)
print(ret)

输出:81

解释:

 

def outer(func, zy)::定义了一个函数 outer,它接受一个函数 func 和一个参数 zy 作为参数。

def inner(z)::在 outer 函数内部定义了一个嵌套函数 inner,它接受一个参数 z。

return func(z):在 inner 函数内部调用传入的 func 函数,并返回其结果。

return inner(zy):outer 函数返回 inner 函数调用 zy 的结果。

def show(x)::定义了一个函数 show,它接受一个参数 x 并返回 x * x。

ret = outer(show, 9):调用 outer 函数,并将 show 函数和参数 9 作为参数传入,结果赋值给 ret。

print(ret):打印 ret。

#b

def outer(func, z, y):

    return func(z, y)

def show(x):

    return x * x

 

ret = outer(show, 9, 23)print(ret)

def outer(func, z, y):

    return func(z, y)

 

f1 = lambda x, y: x + y

ret = outer(f1, 11, 23)print(ret)

解释:

 

def outer(func, z, y)::定义了一个函数 outer,它接受一个函数 func 和两个参数 z 和 y 作为参数。

return func(z, y):在 outer 函数内部调用传入的 func 函数,并返回其结果。

def show(x)::定义了一个函数 show,它接受一个参数 x 并返回 x * x。

ret = outer(show, 9, 23):调用 outer 函数,并将 show 函数和参数 9 和 23 作为参数传入,结果赋值给 ret。

print(ret):打印 ret。

输出结果为:81

输出 81 是因为在 outer 函数内部调用了 show 函数,但 show 函数只接受一个参数,所以 23 被忽略,show 函数计算 9 * 9 并返回 81。

 

接下来是第二个代码块:

def outer(func, z, y):

    return func(z, y)

 

f1 = lambda x, y: x + y

ret = outer(f1, 11, 23)

print(ret)

 

解释:

 

def outer(func, z, y)::定义了一个函数 outer,它接受一个函数 func 和两个参数 z 和 y 作为参数。

return func(z, y):在 outer 函数内部调用传入的 func 函数,并返回其结果。

f1 = lambda x, y: x + y:定义了一个 lambda 函数 f1,它接受两个参数 x 和 y 并返回它们的和。

ret = outer(f1, 11, 23):调用 outer 函数,并将 f1 函数和参数 11 和 23 作为参数传入,结果赋值给 ret。

print(ret):打印 ret。

输出结果为:34

输出 34 是因为在 outer 函数内部调用了 f1 函数,f1 函数计算 11 + 23 并返回 34。

 

#c

def outer(func, z, y):

    return func(z, y)

 

f1 = lambda x, y: x * y

ret = outer(f1, 11, 23)print(ret)

解释:

 

def outer(func, z, y)::定义了一个函数 outer,它接受一个函数 func 和两个参数 z 和 y 作为参数。

return func(z, y):在 outer 函数内部调用传入的 func 函数,并返回其结果。

f1 = lambda x, y: x * y:定义了一个 lambda 函数 f1,它接受两个参数 x 和 y 并返回它们的乘积。

ret = outer(f1, 11, 23):调用 outer 函数,并将 f1 函数和参数 11 和 23 作为参数传入,结果赋值给 ret。

print(ret):打印 ret。

输出结果为:253

输出 253 是因为在 outer 函数内部调用了 f1 函数,f1 函数计算 11 * 23 并返回 253。

 

#32,

def f5(arg):

    arg.append('找到500万')

def f4(arg):

    arg.append('开第四个门')

    f5(arg)

    arg.append('关第四个门')

def f3(arg):

    arg.append('开第三个门')

    f4(arg)

    arg.append('关第三个门')

def f2(arg):

    arg.append('开第二个门')

    f3(arg)

    arg.append('关第二个门')

def f1(arg):

    arg.append('开一个门')

    f2(arg)

    arg.append('关一个门')

 

user_list = []

result = f1(user_list)print(user_list)print(result)

输出结果为:

['开一个门', '开第二个门', '开第三个门', '开第四个门', '找到500万', '关第四个门', '关第三个门', '关第二个门', '关一个门']

None

 

33、利用递归实现32题中c题的功能

def func(x, y=0):
    y += 1
    if y == 5:
        return x + y
    x += y
    x = func(x, y)
    x += y
    return x

num = 1
result = func(num)
print(num)
print(result)

 

 

#34利用递归实现1*2*3*4*5*6*7=5040

d#1
def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)

result = factorial(7)
print(result)

#2
def func(x, y=1):
    if x == 1:
        return y
    y = y * x
    x -= 1
    return func(x, y)

ret = func(7)
print(ret)

#3
from functools import reduce
print(reduce(lambda x, y: x * y, [x for x in range(1, 8)]))

 

 

35、写程序

a.文件操作时with 的作用?

whih 打开文件执行完毕后自动关闭

b.写程序:利用 with实现同时打开两个文件(一读,一写,并将读取的内容写入到写入模式的文件中)

with open("a", "r") as x, open("b", "w") as y:

    y.write(x.read())

 

  1. 猴子第一天摘下若干个桃子,当即吃了-半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩-一个。问猴子第一天摘了多少个桃子?1534

方法1

def calculate_peaches(days):
    peaches = 1
    for day in range(days, 1, -1):
        peaches = (peaches + 1) * 2
    return peaches

# 计算第一天摘了多少个桃子
first_day_peaches = calculate_peaches(10)
print(first_day_peaches)

方法2

s = 1

func = lambda x: (x + 1) * 2for i in range(9):

    s = func(s)print(s)

方法3

def func(x, day):

    day -= 1

    if day == 0:

        return x

    x = (x + 1) * 2

    ret = func(x, day)

    return ret

 

ret = func(1, 10)print(ret)

 

标签:练习题,27,outer,name,Python,ret,func,print,def
From: https://www.cnblogs.com/liu-zhijun/p/18379609

相关文章

  • 使用 Python 构建简易图书馆借阅系统
    本文将介绍一个简单的图书管理系统的实现。这个系统用Python编写,可以帮助我们管理图书馆中的图书,包括新增图书、借阅图书、归还图书以及显示图书馆当前藏书的状态。引言图书馆是提供信息和知识的重要场所。为了更好地管理图书馆中的图书,我们需要一个简单易用的管理系统。下......
  • python数据分析中包含很多图像?如何使用这些图像进行数据分析呢?
    在Python中进行数据分析时,选择不同的图案来分析数据可以帮助我们更好地理解数据的特征和关系。以下是一些常见的数据分析图形和它们的应用场景:条形图(BarPlot):适合表示类别型数据的分布或比较不同类别的数据。可以使用水平或垂直的条形图。折线图(LinePlot):适合表示随时间变化......
  • 基于python+flask框架的医疗健康信息管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展和人口老龄化的加剧,医疗健康领域面临着前所未有的挑战与机遇。传统的医疗健康管理模式已难以满足日益增长的健康管理需......
  • 基于python+flask框架的赛事管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着体育产业的蓬勃发展,各类赛事活动层出不穷,从地方性小型比赛到国际级大型赛事,都面临着参赛者众多、赛事组织复杂、信息管理繁琐等挑战。......
  • 基于python+flask框架的鹿野巷咖啡店销售管理系统(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快节奏的城市生活中,咖啡已成为许多人日常生活中不可或缺的一部分,它不仅是一种饮品,更是一种生活态度和社交方式。随着咖啡文化的普及......
  • 基于python+flask框架的网课个性化推荐系统的设计与实现(开题+程序+论文) 计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,网络教育已成为现代教育体系中的重要组成部分。尤其在疫情期间,网课以其便捷性、灵活性和资源丰富的特点,受到了广......
  • 【python】Python中小巧的异步web框架Sanic快速上手实战
    ✨✨欢迎大家来到景天科技苑✨✨......
  • C/C++、Java、Python全面比较
    以下是对C/C++、Java、Python三种编程语言的全面比较,以表格形式呈现:特性/语言C/C++JavaPython类型系统静态类型静态类型动态类型内存管理手动管理自动管理(垃圾回收)自动管理(垃圾回收)编译/解释编译型编译型(通过JVM解释执行)解释型性能高(直接编译成机器码)中等(通过JIT优化)较低(解......
  • Python 字符串反转函数的实现与解析
    Python字符串反转函数的实现与解析在Python编程中,字符串是最常用的数据类型之一。反转字符串是一个常见的编程任务,通常用于数据处理、文本分析和算法练习。本文将详细介绍如何实现一个反转字符串的函数,探讨不同的方法,并分析它们的优缺点。一、字符串反转的基本概念字......
  • 理解 Python 中的异常处理机制
    理解Python中的异常处理机制在软件开发中,异常是不可避免的。无论是由于用户输入错误、文件未找到,还是网络连接失败,异常都可能在程序运行时发生。Python提供了一种强大的异常处理机制,使得开发者能够优雅地处理这些错误,而不至于让程序崩溃。本文将深入探讨Python中的异......