每日一练
小樱桃smile
这个作者很懒,什么都没留下…
展开
-
python五人分鱼
游戏规则:A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。C、D、E依次醒来,也按同样的方法拿鱼。问他们至少捕了多少条鱼?def main(): fish = 1 while True: total ,enough = fish,True for _ in r原创 2021-01-01 07:57:38 · 275 阅读 · 0 评论 -
Python约瑟夫生者死者小游戏
游戏规则:30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?代码如下:pepole = list(range(30))while len(pepole)>15: i =1 while i < 9: pepole.append(pepole.pop(0)) i+=1 print('{原创 2021-01-01 07:22:17 · 906 阅读 · 1 评论 -
python递归显示C盘下所有文件及文件夹名称
import osdef gci(filepath): files = os.listdir(filepath) for fi in files: fi_d = os.path.join(filepath,fi) if os.path.isdir(fi_d): gci(fi_d) else: print(os.path.join(filepath,fi_d))gci("C:")os.lis原创 2020-12-30 23:57:05 · 1195 阅读 · 0 评论 -
Python判断某一天是这一年中的第多少天
import datetimedef dayofyear(): year = input("请输入年份:") month = input("请输入月份:") day = input("请输入天:") date1 = datetime.date(year=int(year),month=int(month),day=int(day)) date2 = datetime.date(year=int(year),month=1,day=1) return (dat原创 2020-12-28 22:14:05 · 545 阅读 · 1 评论 -
Python获取昨天日期
import datetimedef getYesterday(): today = datetime.date.today() oneday = datetime.timedelta(days=1) yesterday = today - oneday return yesterdayprint(getYesterday())运行结果如下:2020-12-24原创 2020-12-25 07:55:11 · 1173 阅读 · 0 评论 -
Python求最小公倍数
def lcm(x,y): if x > y: greater = x else: greater = y while True: if greater%x==0 and greater%y==0: lcm = greater break else: greater += 1 return lcmnum1 = int(input("请原创 2020-12-25 00:25:15 · 687 阅读 · 0 评论 -
Python求最大公约数
def hcf(x,y): if x>y: smaller = y else: smaller = x for i in range(1,smaller+1): if(x%i==0) and (y%i==0): hcf = i return hcfnum1 = int(input("请输入第一个数:"))num2 = int(input("请输入第二个数:"))print(hcf(num1,.原创 2020-12-25 00:15:53 · 593 阅读 · 0 评论 -
Python 阿姆斯特朗数
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。python实现代码如下:num = input("请输入一个数:")# 计算这个num是几位数n = len(num)sum = 0temp = int(num)while temp>0: digit = temp %10 sum原创 2020-12-24 08:26:51 · 932 阅读 · 0 评论 -
斐波那契数列
斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13,特别指出:第0项是0,第1项是第一个1。从第三项开始,每一项都等于前两项之和。Python 实现斐波那契数列代码如下:def fib(n): if n == 1: return 0 if n == 2: return 1 if n > 2: return fib(n-1) + fib(n-2)def printfiblist(n): fo原创 2020-12-24 08:16:28 · 133 阅读 · 0 评论 -
九九乘法表打印
用python实现代码如下:for i in range(1,10): for j in range(1,i+1): print("{}*{}={}\t".format(j, i,j*i),end="") print()输入结果如下:1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=1原创 2020-12-23 23:33:06 · 142 阅读 · 0 评论 -
判断一个数股是否为质数
判断是否为质数,实现代码如下:import mathdef isPrime(n): if n <= 1: return False if n == 2: return True for i in range(2,int(math.sqrt(n) + 1)): if n % i == 0: return False return True...原创 2020-12-16 22:16:37 · 296 阅读 · 1 评论 -
判断年份是闰年还是平年
首先明确 什么是闰年?1、能被4整除,但不能被100整除;2、能被400整除;实现代码如下:year = int(input("请输入年份:"))if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: print("{0}是闰年".format(year))else: print("{0}是平年".format(year))...原创 2020-12-16 21:35:14 · 173 阅读 · 0 评论 -
队列
队列是先到先出的,FIFO(first in, first out)。队列有下面一些主要操作。enqueue: 将元素加入队列dequeue: 将排在最前面的元素推出队列队列在现实生活中非常常见。比如去一些餐厅吃饭是需要排队的,先来的先吃,这就是一个等待的队列。队列实现代码如下:import unittestfrom _collections import dequeclass Queue(): def __init__(self): self.data = deque原创 2020-12-14 22:16:22 · 55 阅读 · 0 评论 -
用栈判断括号匹配问题
栈判断括号的思路:遍历表达式中的每一个字符如果是左括号,将左括号压入栈如果是右括号,则判断栈是否为空,不为空则推出,为空就证明右括号没有匹配的项目,返回False遍历结束之后判断栈是否为空,不为空则返回False,否则返回Truepython完整代码实现如下:class Stack(): def __init__(self): self.data = [] def __len__(self): return len(self.data) d原创 2020-12-14 21:47:14 · 426 阅读 · 0 评论 -
栈
栈是一个集合,具有下面的2种基本操作push: 把元素加入集合,这个过程我们叫做压入pop: 把最后加入集合的元素从集合中移除,这个过程我们叫做推出所以栈在移除元素的时候是遵循FILO( first in,last out),也就是先进后出的原则的。使用python list来实现栈我们主要是实现pop和push操作,另外再实现is_empty()方法来判断栈是否为空。栈为空的意思是栈内没有任何元素了。我们使用python的list来实现栈,这样比较简单。import unittestcl原创 2020-12-14 08:01:19 · 261 阅读 · 0 评论 -
二分查找(二)
二分法查找又称折半查找。二分法查找是在一个有序列表的基础上完成的,要查找的值x和列表的中间值m作比较,如果x大于m,那么接下来从m+1的右区间内再以相同方法取中间值做判断,循环往复此过程,直到判断出x=m的时候就是查找成功。否则相反。返回类型为布尔值(False)时间复杂度为 O(logn) 空间复杂度:O(1)非递归实现代码如下:def bin_search(arr,target): start = 0 # start当作一个指针指向序列的第一个元素(即元素的位置) end = le原创 2020-12-13 20:07:39 · 153 阅读 · 0 评论 -
二分查找(一)
二分查找:1.首先找到列表中排在中间的元素,比较目标元素与该元素的大小,如果中间的元素等于目标元素,则返回True,否则返回False2.如果目标元素比该元素大,则在中间元素与最后一个元素之间重复步骤1(在中间元素右边进行查找目标元素)3.如果目标元素比该元素小,则在中间元素与第一个元素之间重复步骤1(在中间元素左边进行查找目标元素)注意:进行二分查找的元素必须是有序的二分查找实现代码如下:def bin_search(arr,target): length = len(arr)原创 2020-12-13 19:50:21 · 351 阅读 · 0 评论 -
插入排序
插入排序:首先假设队列左边的元素是已经排序过的元素依次遍历已排序过的元素右边的元素,将该元素与左边已排序的元素做比较,这样左侧已排序的元素个数就会依次增加重复第二步,直到所有的元素全部排序完成。插入排序的代码实现如下:def insertion_sort(arr): length = len(arr) i = 1 # 从位置1开始向右遍历,因为我们假设位置0上的元素(即最左边的元素已经排好了序) while i < length: j = i # j表示原创 2020-12-13 18:42:58 · 63 阅读 · 0 评论 -
冒泡排序
冒泡排序:首先比较每个相邻的元素,把大的元素换到右边,这样每次比较完一行就可以把最大的数字移动到最右边,这就是所谓的冒泡啦,重复上面的过程,把每次找到的最大的元素换到当前比较队列的最右。冒泡排序代码实现如下:def bubble_sort(arr): length = len(arr) for i in range(length): for j in range(length-i-1): if arr[j] > arr[j+1]:原创 2020-12-13 18:15:54 · 187 阅读 · 0 评论 -
判断一个数是否为质数
原创 2020-12-03 23:02:43 · 86 阅读 · 0 评论