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 共同决定的.我们 ...
随机推荐
- C# - Winform - DevExpress - GridControl 任意条件控制Row背景色。
private void gvSendConfirm_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCusto ...
- python 多进程并发demo
outline 下午需要简单处理一份数据,就直接随手写脚本处理了,但发现效率太低,速度太慢,就改成多进程了: 程序涉及计算.文件读写,鉴于计算内容挺多的,就用多进程了(计算密集). 代码 import ...
- Python学习笔记之测试函数
11-1 城市和国家:编写一个函数,它接受两个形参:一个城市名和一个国家名.这个函数返回一个格式为City, Country 的字符串,如Santiago, Chile.将这个函数存储在一个名为cit ...
- Nuxt中使用Vant,完成通知栏Notify的提示
第一次移动端开发,UI方面选择了使用vant框架,但是vant官网写的使用,在nuxt项目中照搬官方的实例,各种报错,所以还得靠自己(使用方法在最后) 官方实例: 方法一:直接复制粘贴的时候,报错No ...
- vue单页面应用中动态修改title
https://www.jianshu.com/p/b980725b62e8 https://www.npmjs.com/package/vue-wechat-title 详细信息查看:vue-wea ...
- JS基石之-----数组转换为树结构函数
我们常常在做后台管理系统的时候 需要对数据进行组装成一个树装结构,这里特地将此方法进行封装: let data = [ { id: , text: }, { id: , text: }, { id: ...
- ASP.NET Core MVC 502 bad gateway 超时如何处理
在网页程序运行需要较长时间运行的时候,ASP.NET Core MVC会出现502 bad gateway请求超时情况.一般默认的超时时间都比较短,我们需要在 web.config 中配置一下.其中 ...
- idea svn 文件还原到指定版本
使用svn经常会遇见,由于自己或者其他同事的提交(或者误操作),把原本正确代码或文件覆盖掉了,现在就得需要恢复到之前指定的某个版本. 先打开指定的文件,然后右上角点击时间的按钮: 这比会出现以前的许多 ...
- MySQL数据库(六)-- SQL注入攻击、视图、事物、存储过程、流程控制
一.SQL注入攻击 1.什么是SQL注入攻击 一些了解sql语法的用户,可以输入一些关键字 或合法sql,来导致原始的sql逻辑发生变化,从而跳过登录验证 或者 删除数据库 import pymysq ...
- Linux shell awk中printf使用
printf 是 awk 的重要格式化输出命令 printf格式化输出内容 格式: printf format,item1,item2... 要点: 1,printf输出时要指定格式f ...