常用算法的python实现
1、乘法表
#! -*- coding:utf-8 -*- for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d\t' % (i, j, i*j)),
print'\r'
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
2、回文数
#! -*- coding:utf-8 -*-
num = raw_input('请输入一个整数: ')
for i in range(len(num)/2):
if num[i] == num[-i-1]:
print('%s 是一个回文数' % num)
else:
print('%s 不是一个回文数' % num)
3、阶乘
#! -*- coding:utf-8 -*- def f(n):
if n < 0:
print('负数没有阶乘')
elif n == 0:
return 1
elif n == 1:
return 1
else:
return n*f(n-1) def jiesum(n):
sum = 0
for i in range(1, n+1):
sum += f(i)
return sum number = int(raw_input('请输入一个整数: '))
result = f(number)
sum = jiesum(number)
print('%d 的阶乘是%d' % (number, result))
print('%d 的阶乘和是%d' % (number, sum))
4、字符串去重
#! -*- coding:utf-8 -*- # 字符串去重
str = 'zhang jingjing'
lst = [] for i in str:
if i not in lst:
lst.append(i)
print ''.join(lst) # 把字符串sign替换成空格 str1 = 'title=华为招聘会&time=20190305&sign=zhang&name=jing'
lst1 = []
for i in str1.split('&'):
if i.startswith('sign='):
lst1.append('sign= ')
else:
lst1.append(i)
print '&'.join(lst1)
5、冒泡排序法
#! -*- coding:utf-8 -*-
# list = [1,5,4,78] # n个数比n-1轮 # 1 - n-1-1 # i n-i-1
num = raw_input('输入一组数: ')
# print(num) str
list = num.split(',') # list
# list = list(num)
print(list)
for i in range(len(list)-1):
for j in range(len(list)-i-1):
if list[j]>list[j+1]:
list[j],list[j+1] = list[j+1],list[j]
print(list)
6、自动生成扑克牌,输入1随机发一张牌,输入2随机发2张牌。。。输入0停止发牌并把之前的牌全部返回
#! -*- coding:utf-8 -*-
import random def auto():
pokers = []
poker = []
list1 = ['R', 'B', 'F', 'M']
list2 = ['A', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'K', 'Q']
for i in list1:
for j in list2:
poker.append(i)
poker.append(j)
pokers.append(poker)
poker = []
pokers.append(['bighero'])
pokers.append(['smallhero'])
# random.shuffle(pokers)
return pokers def fapai(poker, n):
if n != 0:
return random.sample(poker, n)
else:
print('请输入一个整数') pokers = auto()
print(pokers)
result = []
while True:
number = int(raw_input('请输入一个整数: '))
if number != 0:
rand1 = fapai(pokers, number)
print(rand1)
for i in rand1:
result.append(i)
else:
print(result)
break
学习路上的同志共勉!
常用算法的python实现的更多相关文章
- 常用算法及其Python实现
冒泡排序 def bubble_sort(li): for i in range(len(li)-1): # i表示第几趟 for j in range(len(li)-i-1 ...
- Python之路,Day21 - 常用算法学习
Python之路,Day21 - 常用算法学习 本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的 ...
- 常用排序算法的python实现和性能分析
常用排序算法的python实现和性能分析 一年一度的换工作高峰又到了,HR大概每天都塞几份简历过来,基本上一天安排两个面试的话,当天就只能加班干活了.趁着面试别人的机会,自己也把一些基础算法和一些面试 ...
- python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表
目录: 一:大O记法 二:各函数高阶比较 三:常用算法和数据结构的复杂度速查表 四:常见的logn是怎么来的 一:大O记法 算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记 ...
- 第四百一十四节,python常用算法学习
本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机 ...
- Python常用算法
本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机 ...
- 八大排序算法的 Python 实现
转载: 八大排序算法的 Python 实现 本文用Python实现了插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个 ...
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
机器学习算法与Python实践之(四)支持向量机(SVM)实现 机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/ ...
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
机器学习算法与Python实践之(三)支持向量机(SVM)进阶 机器学习算法与Python实践之(三)支持向量机(SVM)进阶 zouxy09@qq.com http://blog.csdn.net/ ...
随机推荐
- redis参数说明
感谢网友分享. 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pid写 ...
- python画手绘图
第一步:插入代码 #e17.1HandDrawPic.py from PIL import Image import numpy as np vec_el = np.pi/2.2 # 光源的俯视角度, ...
- 通过本质看现象:关于Integer受内部初始化赋值范围限制而出现的有趣现象
左手代码,右手文章.——朱季谦 这是我的第一篇技术博客,作为一名技术小菜鸟,总体而言显得很拙见,但也算是成长路上的一个小脚印,希望能在以后的日子里,可以对JAVA技术有一个更加深入的思考与认识. 前几 ...
- 2.2JAVA基础复习——JAVA语言的基础组成运算符和语句
JAVA语言的基础组成有: 1.关键字:被赋予特殊含义的单词. 2.标识符:用来标识的符号. 3.注释:用来注释说明程序的文字. 4.常量和变量:内存存储区域的表示. 5.运算符:程序中用来运算的符号 ...
- oracle数据库创建用户
--4.1 创建表空间 CREATE TABLESPACE mdm_data DATAFILE 'D:\soft\Oracle\oracl\oradata\mdm_data01.dbf' SIZE 3 ...
- Spring Cloud Zuul 中文文件上传乱码
原文地址:https://segmentfault.com/a/1190000011650034 1 描述 使用Spring Cloud Zuul进行路由转发时候吗,文件上传会造成中文乱码“?”.1. ...
- 安卓入门——————简单记账本的开发(二)-点击listview跳转并实现数据的更新
前言: 这个博客主要实现listview的跳转并实现对数据库内容的更新并显示到listview上,还没有实现listview的实时更新和listview具体线条的添加(接下来的几篇博客会实现),如 ...
- 使用ReentrantLock同步,经典银行账户问题
1.新建Account类,使用ReentrantLock同步增加和减少金额方法. package com.xkzhangsan.reentrantlockpack.bank; import java. ...
- linux /dev/mapper/centos-root目录莫名其妙被占满
shell命令df -h查看磁盘占用情况,发现/dev/mapper/centos-root莫名其妙被沾满: 这是因为,系统有文件被删除,而进程还活着,因而造成还占用空间的现象.1.使用lsof |g ...
- 物理层PHY 和 网络层MAC
PHY模块简介 物理层位于OSI最底层,物理层协议定义电气信号.线的状态.时钟要求.数据编码和数据传输用的连接器. 物理层的器件称为PHY. 上图里的灰色方框图里的就是PHY芯片内部模块图. MAC器 ...