Python【每日一问】19
问:
【基础题】:请解释类方法、静态方法、属性方法
【提高题】:有以下几个数字:1、2、3、4、5,能组成多少个互不相同且无重复数字的三位数?都是多少?(代码实现)
答:
【基础题】:请解释类方法、静态方法、属性方法
@staticmethod
静态方法,通过类直接调用,不需要创建对象,不会隐式传递self @classmethod
类方法,方法中的cls是类对象本身,调用方法时传的值也必须是类的公有属性,就是说类方法只能访问类本身的公有字段,不能访问实例变量 @property
属性方法:把一个方法变成一个静态属性。调用的时候不需要加()
静态方法:在类中的方法前面通过@staticmethod装饰器实现静态方法
类方法:在类中的方法前面通过@classmethod装饰器实现类方法,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量
属性方法:在类中的方法前面通过@property装饰器实现属性方法,即把一个方法变成一个静态属性
【提高题】:有以下几个数字:1、2、3、4、5,能组成多少个互不相同且无重复数字的三位数?都是多少?(代码实现)
方法1:
import itertools
from functools import reduce lyst = [1, 2, 3, 4, 5]
result = [] for el in itertools.permutations(lyst, 3):
temp = reduce(lambda x,y:x * 10 +y, el)
result.append(temp) print(f'总共有{len(result)}个互不相同且五重复数字的三位数,分别是:')
print(result)
方法2:
import copy
numbers = [1, 2, 3, 4, 5]
tri = []
for i in numbers:
d_u = copy.copy(numbers)
d_u.remove(i)
for j in d_u:
u = copy.copy(d_u)
u.remove(j)
for k in u :
tri.append(i * 100 + j * 10 + k) print(tri)
print(len(tri))
方法3:
import itertools
count = 0
for i in itertools. product([1,2,3,4,5], repeat=3):
if i[0] != i[1] and i[0] != i[2] and i[1] != i[2]:
print(i[0]*100 + i[1]*10 + i[2])
count += 1
print(count)
方法4:
firstNumber = [1, 2, 3, 4, 5]
count = 0
for i in firstNumber:
secondNumber = firstNumber[:]
secondNumber.remove(i)
for j in secondNumber:
thirdNumber = secondNumber[:]
thirdNumber.remove(j)
for k in thirdNumber:
print(str(i) + str(j) + str(k), end=",")
count += 1
print("一共有{}个数".format(count))
Python【每日一问】19的更多相关文章
- [python每日一练]--0012:敏感词过滤 type2
题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
#coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...
- Python 3 利用 Dlib 19.7 实现人脸识别和剪切
0.引言 利用python开发,借助Dlib库进行人脸识别,然后将检测到的人脸剪切下来,依次排序显示在新的图像上: 实现的效果如下图所示,将图1原图中的6张人脸检测出来,然后剪切下来,在图像窗口中依次 ...
- python每日一函数 - divmod数字处理函数
python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...
- Python 3 利用 Dlib 19.7 实现摄像头人脸识别
0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,提取人脸特征,通过计算欧氏距离来和预存的人脸特征进行对比,达到人脸识别的目的: 可以自动从摄像头中抠取人脸图片存储到本地: 根据抠取的 ...
- 每日一问:Android 消息机制,我有必要再讲一次!
坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...
- 每日一问:谈谈 volatile 关键字
这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...
- 每日一问:讲讲 Java 虚拟机的垃圾回收
昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...
- 每日一问:你了解 Java 虚拟机结构么?
对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...
- 每日一问:LayoutParams 你知道多少?
前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...
随机推荐
- Linq 用得太随意导致的性能问题一则
问题场景 有一个很多条数据的数据库(数据源),在其中找出指定的项,这些项的 ID 位于 给定的列表中,如 TargetList 中. private readonly IDictionary<s ...
- 49道spring面试题整理,附带答案
1.选择使用Spring框架的原因? 使用Spring: 第一是使用它的IOC功能,在解耦上达到了配置级别. 第二是使用它对数据库访问事务相关的封装. 第三就是各种其他组件与Spring的融合,在Sp ...
- 2019 识装java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.识装等公司offer,岗位是Java后端开发,因为发展原因最终选择去了识装,入职一年时间了,也成为了面试官,之 ...
- 对于js中事件冒泡的理解分析
一. 事件 事件的三个阶段:事件捕获 -> 事件目标 -> 事件冒泡 捕获阶段:先由文档的根节点document往事件触发对象,从外向内捕获事件对象: 目标阶段:到达目标事件位置(事发地) ...
- [转]QT中的D指针与Q指针
Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念. 那么为什么d指针能实现二进制兼容呢? 为了回答这个问题,首先弄清楚什么是二进制兼容? 所谓二进制兼容动态库,指的是一个在老版本库下运行 ...
- php+Apache2+Nginx+Mysql
Nginx 1.安装Nginx sudo apt-get clean sudo apt-get update sudo apt-get install ...
- docker的centos7安装与启动相关命令
Docker 的概念 Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止.Docker 帮助系统管理员和程序员在容 ...
- day 69作业
""" 1.按照上方 知识点总结 模块,总结今天所学知识点: 2.有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/t ...
- 部署LNMP应用平台
一.LNMP应用平台概述 1.概述:LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/ ...
- Java期末复习——主观题
JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Envir ...