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 共同决定的.我们 ...
随机推荐
- ElasticSearch 查询索引
GET iis_qr_2019-07/_search #查询iis_qr_2019-07索引下的所有日志 GET iis_qr_2019-07/_search?_source=c-ip,time #只 ...
- mpvue 小程序开发之 数据埋点统计
mpvue 小程序开发之 数据埋点统计 在开发过程中,有数据统计的需求,需要获取小程序当前页面和来源页面的数据,以及页面的停留时间 在对小程序api进行了一番研究之后,发现获取这些数据其实并不难 当前 ...
- Java 之 Vector 集合
一.构造方法 Vector():构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零. Vector(int initialCapacity) :使用指定的初始容量和等于零的容量增量构造 ...
- 《Android开发艺术探索》读书笔记之IntentFillter的匹配规则
使用intent启动不同组件的方法 组件类型 启动方法 Activity startActivity(Intent intent) startActivityForResult(Intent inte ...
- Android Okhttp POST提交键值对
以前的项目网络连接那块一直坚持使用HttpClient,总是会出现一些莫名奇妙的问题,现在新的项目使用了OKHttp网络框架,发现超级好用,上网再了解下,发现OkHttp口碑真的不错,对比之下Http ...
- unity 2d碰撞/ui组件碰撞
首先,ugui的碰撞是可以用Collision2D跟Rigidbody2D实现的(就跟3D碰撞一样).之前试过不可以主要问题正在于Collision2D以及Rigidbody的设置上. 碰撞双方都添加 ...
- CentOS7升级内核kernel5.0
升级过程: 原系统:CentOS7.3 [root@my-e450 ~]# uname -r3.10.0-514.el7.x86_64 安装必需的软件包: # yum update# yum inst ...
- intellij idea 2019 右键包新建文件是没有java Class选项
今天要测试一个技术点于是新建了一个springboot工程, 在新建文件的时候发现右键后java class文件选项不见了. 以前真的没有碰到这种问题, 感觉很是意外于是百度Google后找到了解决办 ...
- django 基础进 COOKIE
1 cookie session auth cookie概念:针对每一个服务器,保存在客户端浏览器的一个key-value结构数据,可以理解成一个字典结构 cookie语法: ...
- django 自定义分页,网址存储缓存,CBV
1. 通过切片控制分页 自定义分页: from django.shortcuts import render # Create your views here. from app01.models i ...