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

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 = 1class Child1(Parent):passclass Child2(Parent):passprint(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 itemslist1 = 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@propertydef value(self):return self.__valueobj = 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.lryc.cn/news/320779.html

相关文章:

  • upload-labs-pass01
  • 2.4 ROC曲线是什么?
  • mysql笔记:21. 演示脏读、不可重复读和幻读现象
  • iOS通过wifi连接硬件设备
  • SQL-Labs靶场“36-37”关通关教程
  • RabbitMQ介绍及搭建
  • VSCode + PicGo + Github 实现markdown图床管理
  • 小程序搜索排名优化二三事
  • 分布式 Session--一起学习吧之架构
  • 记录一下小程序自定义导航栏消息未读已读小红点,以及分组件的消息数量数据实时读取
  • qt+ffmpeg 实现音视频播放(二)之音频播放
  • Bash Shell中双引号中的感叹号问题详解
  • MFC中CString的用法及使用示例
  • 注册个人小程序
  • VTK----VTK的事件机制
  • 常用的vim和linux命令
  • 生产环境中间件服务集群搭建-zk-activeMQ-kafka-reids-nacos
  • Smart Light Random Memory Sprays Retinex 传统图像增强 SLRMSR
  • Oracle数据库实例概述
  • Odoo17免费开源ERP开发技巧:如何在表单视图中调用JS类
  • [RCTF2015]EasySQL ---不会编程的崽
  • Memcached-分布式内存对象缓存系统
  • bash: sqlplus: command not found 问题解决方法
  • 大模型-Prompt
  • Python实战:SQLAlchemy ORM使用教程
  • 能不能绕过c去学c++?
  • Python 小爬虫:爬取 bing 每日壁纸设为桌面壁纸
  • 利用textarea和white-space实现最简单的文章编辑器 支持缩进和换行
  • 总结mac下解决matplotlib中文显示问题的几种方法
  • 探索区块链世界:从加密货币到去中心化应用