当前位置: 首页 > article >正文

python知识点总结(四)

在这里插入图片描述


这里写目录标题

  • 1、Django 中的缓存是怎么用的?
  • 2、现有2元、3元、5元共三种面额的货币,如果需要找零99元,一共有多少种找零的方式?
  • 3、代码执行结果
  • 4、下面的代码执行结果为:
  • 5、说一下Python中变量的作用域。
  • 6、闭包
  • 7、python2与python3的区别
  • 8、代码执行结果
  • 9、代码的运行结果为
  • 10、运行下面的代码是否会报错,如果报错请说明哪里有什么样的错,如果不报错请说出代码的执行结果。
  • 11、对下面给出的字典按值从大到小对键进行排序。
  • 12、集合的交集、并集、差集

1、Django 中的缓存是怎么用的?

在Django中,缓存是一种用于存储和提供快速访问数据的机制。Django提供了内置的缓存框架,可以轻松地在应用程序中使用缓存。

要使用Django的缓存功能,首先需要在项目的设置文件中配置缓存后端。可以选择使用内存缓存、数据库缓存、文件系统缓存等不同的后端。配置示例如下:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

接下来,在需要缓存数据的地方,可以使用cache装饰器或者cache_page装饰器来标记需要缓存的视图函数或方法。例如:

from django.core.cache import cache

@cache_page(60)  # 缓存60秒
def my_view(request):
    # 从缓存中获取数据
    data = cache.get('my_data')
    if data is None:
        # 如果缓存中没有数据,从数据库或其他地方获取数据
        data = fetch_data_from_database()
        # 将数据存入缓存
        cache.set('my_data', data, 60)
    return HttpResponse(data)

在上述代码中,cache_page装饰器将视图函数my_view的输出结果缓存60秒。如果在60秒内再次访问该视图函数,将直接从缓存中获取数据,而不会执行视图函数的代码。

除了使用装饰器,还可以直接使用cache对象来操作缓存。例如,可以使用cache.get(key)方法从缓存中获取数据,使用cache.set(key, value, timeout)方法将数据存入缓存,并指定过期时间。

2、现有2元、3元、5元共三种面额的货币,如果需要找零99元,一共有多少种找零的方式?

for i in range(50):
    for j in range(34):
        for z in range(20):
            if i*2+j*3+z*5==99:
                print(i,j,z)

3、代码执行结果

items=[1,2,3,4]
print([i for i in items if i>2])   #[3,4]
print([i for i in items if i%2])   #[1,3]
print([(x,y) for x,y in zip('abcd',(1,2,3,4))])  #[(a,1),(b,2),(c,3),(d,4)]
print({x:f'item{x ** 2}' for x in (2, 4, 6)}) #{x:item4,4:item16,6:item36}
print(len({x for x in 'hello world' if x not in 'abcdefg'})) #hlowor    6
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
{2: 'item4', 4: 'item16', 6: 'item36'}
6

4、下面的代码执行结果为:

class Parent:
    x = 1


class Child1(Parent):
    pass


class Child2(Parent):
    pass


print(Parent.x, Child1.x, Child2.x)
Child1.x = 2
print(Parent.x, Child1.x, Child2.x)
Parent.x = 3
print(Parent.x, Child1.x, Child2.x)

1 1 1
1 2 1
3 2 3

5、说一下Python中变量的作用域。

Python中有四种作用域,分别是局部作用域(Local)、嵌套作用域(Embedded)、全局作用域(Global)、内置作用域(Built-in),搜索一个标识符时,会按照LEGB的顺序进行搜索,如果所有的作用域中都没有找到这个标识符,就会引发NameError异常。

6、闭包

https://blog.csdn.net/YZL40514131/article/details/125307797

7、python2与python3的区别

1.Python2中的print和exec都是关键字,在Python3中变成了函数。
2.Python3中没有long类型,整数都是int类型。
3. Python2中的不等号<>在Python3中被废弃,统一使用!=。
Python2中的xrange函数在Python3中被range函数取代。
5. Python3对Python2中不安全的input函数做出了改进,废弃了raw_input函数。
6. Python2中的file函数被Python3中的open函数取代。
7.Python2中的/运算对于int类型是整除,在Python3中要用//来做整除除法。
8.Python3中改进了Python2捕获异常的代码,很明显Python3的写法更合理。

8、代码执行结果

https://blog.csdn.net/YZL40514131/article/details/125753234

class A:
    def who(self):
        print('A', end='')

class B(A):
    def who(self):
        super(B, self).who()
        print('B', end='')

class C(A):
    def who(self):
        super(C, self).who()
        print('C', end='')

class D(B, C):
    def who(self):
        super(D, self).who()
        print('D', end='')

item = D()
item.who()


print(D.__mro__)

ACBD(<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)
print(list3)   ACBD

9、代码的运行结果为

list1:不是[10] ,是[10,‘a’]

def extend_list(val, items=[]):
    items.append(val)
    return items


list1 = extend_list(10)             #不是[10]   是[10,'a']
list2 = extend_list(123, [])        #[123]
list3 = extend_list('a')            #[10,'a']
print(list1)
print(list2)
print(list3)

10、运行下面的代码是否会报错,如果报错请说明哪里有什么样的错,如果不报错请说出代码的执行结果。

class A:
    def __init__(self, value):
        self.__value = value

    @property
    def value(self):
        return self.__value


obj = A(1)
obj.__value = 2
print(obj.value)       1
print(obj.__value)		2	

11、对下面给出的字典按值从大到小对键进行排序。

d={1:2,5:7,3:2}
dd=sorted(d.items(),key=lambda x:x[0])
print({i:j for i,j in dd})

12、集合的交集、并集、差集

s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}

# 交集
print(s1 & s2)  # {3, 4}
# 并集
print(s1 | s2)  # {1, 2, 3, 4, 5, 6}
# 差集
print(s1 - s2)  # {1, 2}
print(s2 - s1)  # {5, 6}
# 取共同没有的数据
print(s1 ^ s2)  # {1, 2, 5, 6}

在这里插入图片描述


http://www.kler.cn/a/273374.html

相关文章:

  • 微服务架构面试内容整理-领域驱动设计(DDD)
  • mac-泛洪
  • 算法|牛客网华为机试21-30C++
  • aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储
  • 引领数字时代:万码优才如何变革IT人才招聘新体验(这里有更精准的推荐)
  • 【C++】哈希表模拟:开散列技术与哈希冲突处理
  • STM32:定时器
  • Grid布局
  • 每周编辑精选|微软开源 Orca-Math 高质量数学数据集、清华大学研究团队发布条件去噪扩散模型 SPDiff...
  • 深入学习NIO三大核心:缓冲区 Buffer、通道Channel、Selector选择器
  • nextjs 使用 lru-cache 进行缓存,在api里访问不到page中的缓存
  • Easy-Jmeter: 性能测试平台
  • 通过Pytest 多数据库连接实例了解Python工厂模式与单例模式的区别
  • 《LeetCode热题100》笔记题解思路技巧优化_Part_5
  • 量子计算+HPC!ORNL与Riverlane、Rigetti合作研发
  • day03vue学习
  • sheng的学习笔记-AI-残差网络-Residual Networks (ResNets)
  • 【C++初阶】第七站:string类的初识(万字详解、细节拉满)
  • 最新Java面试题2【2024初级】
  • 【LAMMPS学习】二、LAMMPS安装(2)MacOS和Win安装
  • 如何通过ETL做数据转换
  • 铝壳电阻的工艺结构原理及选型参数总结
  • 【排序】快速排序
  • 2024.3.18-408学习笔记-C-结构体
  • npm和pnpm安装、更换镜像源
  • 转录因子/组蛋白修饰靶基因数据库:Cistrome DB使用教程