
python
如是我闻CsDn
这个作者很懒,什么都没留下…
展开
-
约瑟夫环问题(基督教徒问题)python
python解决约瑟夫环问题问题描述:1、30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止。问都有哪些编号的人下船了呢?2、有15个基督徒和15个非基督徒在海上遇险,为了能让一部分人活下来不得不将其中15个人扔到海里面去,有个人想了个办法就是大家围成一个圈,由某个人开始从1报数,报到9的人就扔到海里面,他后面的人接着从1开始报数,报到9的人继续扔到海里面,直到扔掉15个人。由于上帝的原创 2020-12-18 09:58:49 · 1963 阅读 · 0 评论 -
快速排序 python
快速排序问题描述:快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。步骤为:挑选基准值:从数列中挑出一个元素,称为"基准"(pivot)分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成;递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。递归到最底部的判断条件原创 2020-12-19 09:37:37 · 157 阅读 · 0 评论 -
阿姆斯特朗数python
python实现阿姆斯特朗数(又称水仙花数)如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如153=13+53+33153=1^3 + 5^3 + 3^3153=13+53+33。def amstl(n): sum = 0 num = len(str(n)) temp = n while temp > 0: ams = n % 10 sum += ams ** num temp //= 10原创 2020-12-17 15:31:35 · 1186 阅读 · 0 评论 -
判断回文数python
python判断一个数是否是回文数回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数def is_palindrome(num): """ 判断一个数是否是回文数 :param num: 要查询的数 :return: true or false """ temp = num total = 0 while temp > 0: total = total * 10 + temp % 10 tem原创 2020-12-17 15:56:20 · 868 阅读 · 0 评论 -
插入排序python
插入排序问题描述:实现原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。def intersort(arr): # 方式一 # for i in range(1, len(arr)): # key = arr[i] # # j = i - 1 # while j >= 0 and arr[j] > key: # arr[j + 1] = arr[j]原创 2020-12-18 10:11:04 · 153 阅读 · 0 评论 -
线性查找 python
线性查找问题描述:线性查找指按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。def search(arr, n, x): """ 线性查找 :param arr: 列表 :param n: 查询范围 :param x: 要查询的元素 :return: """ for i in range(0, n): if arr[i] == x: return i return -1原创 2020-12-18 10:09:38 · 222 阅读 · 0 评论 -
计算指定的年月日是这一年的第几天python
输入一个年月日,计算出指定的年月日是这一年的第几天def is_leap_year(year): """ 判断指定的年份是不是闰年 :param year: 年份 :return: 闰年返回True平年返回False """ return year % 4 == 0 and year % 100 != 0 or year % 400 == 0def which_day(year, month, date): """ 计算传入的日期是这一年转载 2020-12-18 09:39:06 · 2093 阅读 · 0 评论 -
冒泡排序python
冒泡排序问题描述:冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。def bubblesort(arr, order=0): """ 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列, 一次比较两个元素,原创 2020-12-19 09:36:46 · 268 阅读 · 0 评论 -
百钱百鸡问题python
python百钱百鸡问题公鸡5元一只,母鸡3元一只,小鸡1元三只,用100块钱买一百只鸡,问公鸡、母鸡、小鸡各有多少只?def cheickenbuy(): for x in range(0, 20): for y in range(0, 33): z = 100 - x - y if 5 * x + 3 * y + z / 3 == 100: print('公鸡: %d只, 母鸡: %d只, 小鸡:原创 2020-12-17 15:37:23 · 1190 阅读 · 0 评论 -
合并两个字典 python
python合并两个字典def mergedict(): dict1 = {"a": 1, "b": 2} dict2 = {"3": 4, 4: "d"} # 方式一 dict1.update(dict2) print(dict1) # 方式二 dict4 = {**dict1, **dict2} print(dict4)原创 2020-12-18 10:03:08 · 179 阅读 · 0 评论 -
选择排序python
选择排序问题描述:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。def slectsort(arr): """ 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置, 然后,再原创 2020-12-19 09:37:11 · 192 阅读 · 0 评论 -
计算两个数的最大公约数python
python计算两个数的最大公约数def hcf(x, y): if x > y: smaller = y else: smaller = x hcf = 0 for i in range(2, smaller + 1): if x % i == 0 and y % i == 0: hcf = i return hcf原创 2020-12-17 15:23:03 · 646 阅读 · 0 评论 -
设计一个函数生成指定长度的验证码python
设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成import randomdef generate_code(code_len=4): """ 生成指定长度的验证码 :param code_len: 验证码的长度 :return: 四位随机验证码 """ all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' cap_code原创 2020-12-18 09:39:21 · 1799 阅读 · 0 评论 -
串行、并行迭代多个列表python
python串行、并行迭代多个列表# 串行def iterlist1(): from itertools import chain from random import randint list1 = [randint(0, 100) for _ in range(20)] list2 = [randint(0, 100) for _ in range(30)] list3 = [randint(0, 100) for _ in range(40)] li原创 2020-12-18 10:05:56 · 254 阅读 · 0 评论 -
n人分鱼问题 python
python解决n人分鱼问题问题描述:A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。C、D、E依次醒来,也按同样的方法拿鱼。问他们至少捕了多少条鱼? 如果推广到n人呢?def fish(n): fish = 1 while True: total, enough = fish原创 2020-12-18 10:01:21 · 700 阅读 · 1 评论 -
计算两个数的最小公倍数python
python计算两个数的最小公倍数def exe(x, y): if x > y: maxnum = x else: maxnum = y while True: if maxnum % x == 0 and maxnum % y == 0: num = maxnum break maxnum += 1 return num...原创 2020-12-17 15:25:29 · 1051 阅读 · 1 评论 -
输出指定范围内的质数python
python输出指定范围内的质数质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数def zhishu(lower, upper): zhishu_list = list() for num in range(lower, upper+1): if num > 1: for i in range(2, num): if (num % i) == 0: b原创 2020-12-17 15:34:24 · 1204 阅读 · 0 评论 -
二分查找python
二分查找问题描述:二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。def binarysearch(lis, k, low, high): """ 二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程原创 2020-12-18 10:08:36 · 162 阅读 · 0 评论 -
打印杨辉三角python
python打印杨辉三角特点:杨辉三角的每行行首与每行结尾的数都为1.而且,每个数等于其左上及其右上二数的和def yanghui(num): """ 打印杨辉三角 :param num: 打印的行数 :return: """ yh = [[]] * num for row in range(len(yh)): yh[row] = [None] * (row + 1) for col in range(len(yh原创 2020-12-18 09:50:22 · 694 阅读 · 0 评论 -
归并排序python
归并排序问题描述:归并排序是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。分治法:分割:递归地把当前序列平均分割成两半。集成:在保持元素顺序的同时将上一步得到的子序列集成到一起(归并)。def mergersort(arr): """ 归并排序是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 分治法: 分割:递归地把当原创 2020-12-19 09:36:17 · 318 阅读 · 0 评论 -
找完美数python
python找完美数完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身,例如6=1+2+3;28=1+2+4+7+14def perfect(lower,upper): """ 找出lower~upper之间的所有完美数 完美数是除自身外其他所有因子的和正好等于这个数本身的数 例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14 """ import math fo原创 2020-12-17 15:40:38 · 775 阅读 · 0 评论 -
裴波那契数列python
输出n个长度的裴波那契数列def fibonacci(n): a, b, c = 0, 1, 0 fibonacc = [] while c < n: a, b = b, a + b print(a, b) fibonacc.append(b) c += 1 return fibonacc原创 2020-12-17 15:26:54 · 4686 阅读 · 1 评论 -
字典的常用操作python
python字典的常用操作1、创建字典2、添加键值对3、访问字典3.1 访问字典中的值3.2 访问字典中的键3.3 同时访问键值,以列表形式返回可遍历的(键,值)元组数组4、 删除字典5、合并两个字典6、字典解析7、整体代码1、创建字典字典的键唯一,值不唯一空字典dict1 = dict() # {}直接赋值dict2 = {“name”: “echo”, “age”: 18} # {“name”: “echo”, “age”: 18}直接将列表的元组转换为键值对,字典原创 2020-12-26 16:10:03 · 609 阅读 · 0 评论 -
列表的常用操作 python
python列表的常用操作1. 创建列表2. 添加元素3. 删除元素4. 切片5. 列表解析6. 列表常用函数7. 总体代码1. 创建列表 list1 = list() # 方式一 list2 = [2, 3, 4, 5, 6, 7] # 方式二2. 添加元素 list1.append(1) # 向列表末尾添加元素 list1.insert(0, "a") # 往指定位置插入元素,即list1[0]="a" list1.extend(list2) # 扩展列表,在原创 2020-12-25 17:27:42 · 306 阅读 · 0 评论 -
镜像源安装python包以及永久修改镜像源
利用国内镜像源安装python包国内常用镜像源阿里云 https://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban) https://pypi.douban.com/simple/(推荐)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学 https://pypi.mirrors.ustc.edu.cn/原创 2020-12-23 22:45:58 · 1062 阅读 · 2 评论 -
pycharm常用快捷键
pycharm常用快捷键快捷键功能Ctrl + /行注释(可选中多行)Ctrl + Alt + L代码格式化Ctrl + Alt + O自动导入Ctrl + Alt + I自动缩进Tab / Shift + Tab缩进、不缩进当前行(可选中多行)Ctrl+C/Ctrl+Insert复制当前行或选定的代码块到剪贴板Ctrl + D复制选定的区域Ctrl + Y删除当前行Shift + Enter换行(不用鼠标操作了)原创 2020-12-19 11:30:01 · 179 阅读 · 1 评论 -
jupyter notebook入门教程
jupyter notebook入门教程1、简介2、安装3、运行1)首页介绍:2) 创建python项目4、快捷键5、实践总结1) Jupyter重启后需要重新执行以前代码1、简介Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。2、安装安装Anaconda,Anaconda自动安装jupyter notebook修改Jupyter原创 2020-12-19 10:56:36 · 1208 阅读 · 3 评论