Python基础
托尼stark
你能从现在开始改变,也可以一成不变。
展开
-
Python递归实现猴子吃桃问题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?对于此性质的问题适合用递归的思想去解决,即当前问题可以转化为性质相同的子问题去解决:要想知道第一天的桃子数量,需要知道第二天的桃子数量,然后将第二天的桃子数量加1乘...原创 2019-05-13 22:11:59 · 33470 阅读 · 1 评论 -
删除字典的键和合并两个字典
字典dic1={'name':'laowang','age':18},dic2={'name':'xiaohua'},删除dic1中键名为'name'的键,并合并dic1和dic2。删除键名为name的键dic1={'name':'laowang','age':18}del dic1['name']print(dic1)合并两个字典,使用字典的成员方法update()d...原创 2019-06-29 21:15:35 · 2971 阅读 · 0 评论 -
print(list(map(lambda x: x * x, [y for y in range(3)])))的输出?
print(list(map(lambda x: x * x, [y for y in range(3)])))的输出结果?print(list(map(lambda x: x * x, [y for y in range(3)])))首先列表推导式生成[0,1,2][y for y in range(3)]然后map函数接受两个参数,第一个是函数,第二个是可迭代的序列(这...原创 2019-07-02 23:29:59 · 3748 阅读 · 0 评论 -
对一个字典进行按值和按键名进行排序
现有一个字典d={'a':10,'b':8,'d':5},分别进行按值和按键进行排序。按键进行排序:print(sorted(d.items(),key=lambda x:x[0]))x[0]代表一维,即按键进行排序 , sorted()可以对所有可迭代对象进行排序。按值进行排序:print(sorted(d.items(),key=lambda x:x[1]))...原创 2019-06-28 14:54:06 · 1289 阅读 · 0 评论 -
给定一串排好序的列表a=[1,2,3,4,5],打乱这个列表(即每次输出列表元素的顺序要不一致)
给定一串排好序的列表a=[1,2,3,4,5],打乱这个列表(即每次输出列表元素的顺序要不一致)。# 法一:使用函数import randoma = [1, 2, 3, 4, 5]random.shuffle(a)print(a)# 法二:for i in range(5): idx = random.randint(0, 3) a[idx], a[idx...原创 2019-04-08 19:37:00 · 1015 阅读 · 0 评论 -
python中生成随机整数,随机小数,0-1之间的小数
python中生成随机整数,随机小数,0-1之间的小数1.生成随机整数import randomprint(random.randint(1,100))#生成1到100之间的随机整数2.生成0-1之间随机的小数import numpy as npprint(random.random())3.生成随机小数,randn(3)代表生成三个import...原创 2019-06-29 21:13:44 · 46437 阅读 · 0 评论 -
python输入日期,判断这一天是该年的第几天?
python输入日期,判断这一天是该年的第几天?import datetimedef f(): year=input('请输入年份:') month=input('请输入月份:') day=input('请输入天份:') date1=datetime.date(year=int(year),month=int(month),day=int(day)) ...原创 2019-07-04 08:56:43 · 6975 阅读 · 0 评论 -
python一行代码实现阶乘函数?
python一行代码实现阶乘函数:如实现6以内的阶乘from functools import reducen=reduce(lambda x,y: x*y, range(1,6))#1*2*3*4*5print(n)注:reduce()函数在python2中为内置函数,但在python3中迁移到了functools模块,需要导入一下,reduce()函数在此不再详细描述...原创 2019-07-02 23:38:32 · 2416 阅读 · 1 评论 -
字符串转整数
字符串 "123" 转换成 123,不使用内置api,例如 int()。方法一:使用str()函数num="123"sum=0for i in num: for j in range(10): if i==str(j): sum=sum*10+jprint(sum)方法二:使用ord()函数ord()函数以一个字符或长度为1的...原创 2019-04-03 22:09:43 · 1709 阅读 · 0 评论 -
利用collections库的Counter方法统计字符串每个字符出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”
利用collections库的Counter方法统计字符串每个字符出现的次数”kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h”from collections import Countera = "kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"res = Counter(a)print(res)Coun...原创 2019-06-29 21:13:58 · 1377 阅读 · 1 评论 -
python实现列表去重的方法
对列表alist=[1,2,2,4,4,6,7],实现去除重复元素。方法一:首先考虑使用set集合,因为使用集合可以去除重复元素,先使用set转为集合,然后再使用list将集合再变回列表。alist=[1,2,2,4,4,6,7]b=set(alist)print(list(b))方法二:考虑先对列表进行遍历,然后新建一个空列表,对原有列表进行遍历,判断该元素是否在新的...原创 2019-06-29 21:14:51 · 18072 阅读 · 0 评论 -
爬楼梯
假设你正在爬楼梯,需要n阶才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶?原题好像有多种方法,这里只使用一种递归思想解决,也是斐波那契解决办法。动态规划:包含最优子结构问题,即当前问题的最优解也可以是子问题最优解之和。第i阶楼梯可由下面两种情况得到: 1.在第i-1阶向上爬1阶2.在第i-2阶向上爬2阶def floor(n): if n == ...原创 2019-04-03 22:19:10 · 653 阅读 · 0 评论 -
python中给定两个列表,怎么找出他们相同的元素和不同的元素?
python给定两个列表,怎么找出他们相同的元素和不同的元素?如列表a和列表b,则相同元素为1,不同元素为2,3,4,5,6a=[1,2,3,4]b=[1,5,6]方法一:使用列表推导式c=[x for x in a if x in b]d=[y for y in (a+b) if y not in c]print(c)print(d)方法二:使用集合和py...原创 2019-07-03 23:38:13 · 59674 阅读 · 5 评论 -
列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提出出大于10的数,最终输出[16,25]
列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]。def f(x): return x**2res = map(f, [1, 2, 3, 4, 5])print([i for i in res if i > 10])...原创 2019-06-29 21:14:26 · 4822 阅读 · 0 评论 -
将字符串 “k:1|k1:2|k2:3|k3:4” 转换成字典{“k”:1,”k1”:2,”k2”:3,”k3”:4}
将字符串 “k:1|k1:2|k2:3|k3:4” 转换成字典{“k”:1,”k1”:2,”k2”:3,”k3”:4},请写出代码:法一:str = "k:1|k1:2|k2:3|k3:4"li=str.split("|")d=dict()for i in li: key=i.split(":")[0] value=eval(i.split(":")[1]) ...原创 2019-04-08 19:31:13 · 4460 阅读 · 0 评论 -
请尝试用“一行代码”实现将 1-N 的整数列表以 3 为单位分组,比如 1-100 分组后为?
请尝试用“一行代码”实现将 1-N 的整数列表以 3 为单位分组,比如 1-100 分组后为:[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34,...原创 2019-07-03 00:12:03 · 990 阅读 · 0 评论 -
回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false 解释:从左向右读, 为-121。从右向左读, 为121-。因此它不是一个回文数。def huiwen(x): if x < 0 or (x != 0 and x % 10 == 0): ...原创 2019-04-03 21:50:42 · 145 阅读 · 0 评论 -
Python中判断对象是否为可迭代以及下标循环
在Python中,凡是可迭代的对象均可以使用for循环进行遍历,那么如何简单的判断一个对象是否为可迭代的呢?from collections import Iterableprint(isinstance('abc',Iterable))#字符串可迭代print(isinstance(123,Iterable))#数值不可迭代print(isinstance([1,2,3],Ite...原创 2019-12-03 20:39:44 · 724 阅读 · 0 评论 -
Python中默认参数的坑
在python中当函数的默认参数为可变对象时:def f(l=[]): l.append("x") print lf([1,2,3])输出结果:但是当使用默认参数进行函数调用时,一开始结果是对的,但是多次调用时就会产生一个现象:def f(l=[]): l.append("x") print lf()f()f()廖大神给...原创 2019-12-02 11:18:03 · 315 阅读 · 0 评论 -
元组tuple的误区
在定义元组是一般使用()定义b1=(1)b2=(1,)print(type(b1))print(type(b2))但当定义只有1个元素的元组时,需要在元素后面加,否则python中会默认把它当成数字!!!...原创 2019-11-18 20:22:08 · 179 阅读 · 0 评论 -
python中sort和sorted的使用方式及区别
区别1.sort函数是在原有列表上进行排序,属于列表的成员方法。sorted函数则可以对所有的可迭代的对象进行排序。2.sorted函数不是在原有对象的基础上进行排序,而且返回的是一个新的对象。使用案例使用sort()函数对列表a排序#对列表a进行排序a=['e','c','m']a.sort()print(a)使用sorted()函数对列表进行排序a=...原创 2019-06-28 15:19:22 · 321 阅读 · 0 评论 -
python中的map()函数和reduce()函数
功能:map()函数的功能是根据提供的函数对指定的序列进行映射,它属于python的内置函数。描述:map()函数接收的参数的形式为map(function,iterable,...),第一个参数是自定义提供的函数(该函数必须带有一个参数),后面可以接收一个或多个序列(可迭代的对象,如列表)。返回值:python2返回列表,python3返回生成器(可迭代的对象)。pyth...原创 2019-06-29 21:15:15 · 587 阅读 · 0 评论 -
python中的zip()函数
Python3中zip()函数接收可迭代的对象作为参数,将对象中的元素打包成一个个元组,返回由这些元组组成的对象,最后可以使用list()转换成列表。而在python2中zip()函数返回的是列表,Python3做法的好处是可以节约内存。参数:zip([iterable]),iterable是一个或多个可迭代的对象。返回值:Python3中返回的是对象,Python2中返回的是...原创 2019-06-30 13:32:55 · 289 阅读 · 1 评论 -
python中异常处理总结详解
异常处理异常是程序执行过程中出现的非正常流程现象。任何程序中对于异常的处理是非常重要的,异常是无法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。一、1.1异常处理基本语法:格式一(常用):try: ____可能引发异常现象的代码...原创 2019-04-16 23:05:26 · 330 阅读 · 0 评论 -
逢7过Python实现
打印100内数字的逢7过(7的倍数不打印,数字中包含7的不打印):i=1while i<100: if i%7==0: pass elif i//10==7: pass elif i%10==7: i+=1 continue else: print(i,end=" ") i+=1...原创 2019-03-21 22:42:37 · 16365 阅读 · 0 评论 -
python中交换两个变量值的几种方式?
python中交换两个变量值的几种方式1.python中独有的,也是最简单的方式:a,b=b,a2.引入第三个变量,可以看作两个装满牛奶的瓶子a和瓶子b,如果我想交换这两个瓶子中的牛奶,就需要一个空瓶temp,先将a瓶中的牛奶倒入空瓶temp中,此时a瓶为空,可以将b瓶中的牛奶倒入a中,然后再将temp中的牛奶倒入b中,这样就实现了交换。temp=aa=bb=temp3...原创 2019-07-03 23:36:55 · 7885 阅读 · 1 评论 -
python中的一些不常见的比较运算
1.整数和字符型的比较:对于不同类型的对象不能使用<、>、<=、>=进行比较,但是可以使用==、!=比较。print(12>'haha')print(13<='lala')运行程序控制台会报错,提示不支持>或<=在字符串和整型之间的比较。但是==和!=却支持在不同类型的对象之间进行比较。print(12!='haha')p...原创 2019-05-27 23:26:44 · 204 阅读 · 0 评论 -
python使用while、for及循环嵌套实现直角三角形及正、倒金字塔
1.# 使用while输出三角形# 1.正直角三角形,使用while输出三角形i = 0while i <= 5: print('*' * i) i += 1运行结果如下图:2.升级,使用while嵌套循环实现#升级,使用while嵌套循环实现i=1while i<=5:#外层循环控制行数 j=1 while j&l...原创 2019-05-02 10:40:43 · 17344 阅读 · 2 评论 -
Python中的单例模式
单例模式说到单例模式必须先说一下__new__方法,__new__方法用于定义创建对象时执行的操作,在创建对象时被执行,无需手动调用。__new__方法仅为用户提供一个创建对象时的干预入口,真正执行创建对象的操作由object类中的__new__方法完成,在python中object类是所有类的父类或者叫超类。废话不多说,上代码:class User: __instance = N...原创 2019-03-18 23:41:42 · 141 阅读 · 0 评论 -
python打印N*N乘法表
N*N乘法表:定义一个函数f(),传入一个参数N,参数N从控制台输入,实现打印N*N乘法表def f(N): i = 1 while i<= N: j = 1 while j <= i: print("%d*%d=%d" % (j, i, j * i), end="\t") j += ...原创 2019-03-21 23:31:23 · 8636 阅读 · 0 评论 -
Python中的引用
这里先说一下引用的概念,引用是指变量指向数据存储空间的现象。获取数据引用地址的语法格式:id(数值)id(变量名)引用的特点:相同的数据在内存空间中仅占用一个存储空间,不同的变量使用相同的数据则指向相同的存储空间。变量赋值修改的不是变量值,而是变量的引用地址。每个数字在内存中都要占用一个存储空间,而变量存储的是这个空间的地址范例a=12b=a #将a的值赋给bc=b #将b的值...原创 2019-03-21 23:13:43 · 1038 阅读 · 0 评论 -
Python中输出百分数
在python中输出百分数:例如99.99%a=99.99print("%.2f%%" % a)#显示小数点后两位,其中%%代表输出%原创 2019-03-21 23:02:49 · 12518 阅读 · 0 评论 -
python推导式详解
推导式:利用推导式可以快速生成数据存储中的数据#范例1:创建包含1到20所有整数的列表list = [data for data in range(1, 21)]print(list)#范例3:创建字典,key从1到5,value是key的平方dict1 = [(data, data ** 2) for data in range(1, 6)]print(dict1)...原创 2019-03-21 22:59:54 · 569 阅读 · 0 评论 -
打印100-1000之间所有的"水仙花数"Python实现
"水仙花数"是指一个三位以上的整数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。i = 100while i < 1000: a = i // 100 # 百位上的数字 b = (i // 10) % 10 # 十位上的数字 c = i % 10 # 个位上的数字 if a ** ...原创 2019-03-21 22:36:42 · 4515 阅读 · 0 评论 -
匿名函数lambda
匿名函数即没有名称的函数,是一个只用一行就能解决问题的函数。在python中,匿名函数是使用lambda关键字定义的一个特殊表达式,匿名函数必须先定义再调用。格式一:定义:函数名 = lambda 形参 :返回值调用:结果 = 函数名(实参)add = lambda a, b: a + bmultiple = lambda a, b: a * bprint(add(4, 2))...原创 2019-03-21 22:33:25 · 187 阅读 · 0 评论 -
Python实现字符串反转
首先先介绍一下字符串切片的概念,字符串切片是指获取字符串中的某一部分,形成新的字符串对象。字符串切片基本语法: 字符串[开始索引:结束索引] 字符串[开始索引:结束索引:步长]例如 :str='abcdef'print(str[::1])上述代码str[::1]中,若开始索引索引不写,则默认从0开始,结束索引不写默认为字符串的最大索引值。步长为2输...原创 2019-03-21 13:31:19 · 481 阅读 · 0 评论 -
Python实现打印斐波那契数列
斐波那契数列,也称兔子数列,是指1,1,2,3,5,8,13,21,34,55,89,144......这样一个数列,在这个数列当中,从第三项起,每一项都是前两项数字之和。非递归实现打印斐波那契数列i=0a=1b=1while i<24: print(a) a,b=b,a+b i+=1上述代码中:a,b=b,a+b代表交换,while循环中,我只让程序...原创 2019-03-20 11:18:31 · 13347 阅读 · 2 评论 -
基于python的简单斗地主实现
## 因为这个斗地主只实现了洗牌,发牌并展示玩家和底牌的功能,代码其实不算太复杂,适合初学python的小伙伴们去学习,涉及的都是一些python的基础语法和面向对象的知识,如果能把这个代码弄懂并且自己实现,相信你会收获不少。import randomclass Poke: pokes=[] #初始牌堆 player1=[]#三个玩家的牌 player2=[] ...原创 2019-03-19 23:16:28 · 3334 阅读 · 0 评论 -
Python中数据类型的分类
python中的数据类型分为可变数据类型和不可变数据类型。可变数据类型:数据存储空间中的数据可以发生变化的数据。不可变数据类型:数据存储空间中的数据不能发生变化的数据。可变数据类型包括:列表、集合、字典、对象不可变数据包括类型:数值、字符串、布尔、元组,其中数值型又包括:整型 int、 长整型 long、浮点型 float、 复数 complex...原创 2019-03-23 22:57:17 · 657 阅读 · 0 评论 -
Python中类方法、实例方法、静态方法的使用方式及区别
在python基础中关于类方法、实例方法、静态方法的三种方法常用的使用方式:只访问成员变量的⽅法,定义成实例⽅法只访问类变量的⽅法,定义类⽅法 既访问成员变量,也访问类变量的⽅法,定义成实例⽅法既不访问成员变量,也不访问类变量,定义成静态⽅法1.类方法:(类方法在定义时,方法的上面必须添加@classmethod)定义格式:class 类名: ...原创 2019-03-24 00:04:34 · 1211 阅读 · 0 评论