python for循环

python手写十大经典排序算法 一.冒泡排序法

半腔热情 提交于 2020-02-29 19:30:06
冒泡排序 (1)实现步骤 1.比较相邻两个元素,如果第一个比第二个大就交换对应位置 2.对每一对相邻元素作同样的操作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 (2)动画演示 (3)手撸代码 老铁看图,我在给您亲自捋一遍,如何用python实现冒泡排序.首先循环嵌套是跑不了,外层循环是用来控制运行次数,内层循环是实现,相邻两个位置上数的大小比较. lst = [ 5 , 9 , 4 , 8 , 7 ] # 设置一个待排序的数列 for i in range ( len ( lst ) ) : # 第一层循环:控制次数 for j in range ( len ( lst ) - 1 - i ) : # 第二次循环:实现相邻位置比大小,交换的功能 if lst [ j ] > lst [ j + 1 ] : lst [ j ] , lst [ j + 1 ] = lst [ j + 1 ] , lst [ j ] ```python 在这里插入代码片 (4)优化 如果说对于一个lst这种的,正好符合顺序,而常规操作,依旧是对他进行一遍无用操作 因此可得:优化点就是,尽量减少无用操作.只要知道本趟一次都没有交换位置的,就可以知道了

Python Day 1

♀尐吖头ヾ 提交于 2020-02-29 17:03:05
一、Python 的历史和发展过程,现目前的版本及2.x与3.x版本的大致区别,包含但不限于input、raw.input等方法! 二、计算机编码的历史进程:ACSII、GB2312、GBK、GB18030、unicode、utf-8 ....... 三、linux一般自带Pythonl输入: [root@localhost ~]#python 就能直接运行。 windows需要安装及设置环境变量(python 3.8.1之后的版本就不需要设置环境变量,安装后可以直接使用) 运行时在命令行界面输入python运行 C:\User\Administrator>pytyon 四、python的第一个程序 print("Hello World!") 五、循环 1 if true: 2 print("true") 3 else: 4 print("false") 5 6 count = 0 #while计数器 7 while true: 8 print("true") 9 count +=1 10 else: 11 print("flase") 1 for i in count(10): 2 print("i") 3 for j in count(10) 4 print("j") 5 if j>4: 6 break #只退出当前 j 的循环,i 循环还是会继续 7

PYTHON复习

只愿长相守 提交于 2020-02-29 16:42:31
1.缩进:四个空格或一个TAB。 在程序中长度统一且强制使用。 2.注释: 单行注释# 多行注释‘’’ ‘’’ 3.保留字(关键字)【python有33个保留字】 type不属于保留字。 4.变量命名:首字符不能是数字,中间不能有空格,长度没有限制,大小写敏感。 允许大小写字母、数字、下划线、汉字等字符。 5.分支语句 if elif else 【每一个语句后都有冒号】 6.评估函数eval() :去掉参数u最外侧引号并执行余下语句的函数 7.turtle库 8.数字类型及操作 (1)整数类型: ·pow(x,y):x^y ·二进制:0b或0B开头 八进制:0o或0O开头 十六进制:0x或0X开头 (2)浮点数类型 浮点数间运算存在不确定尾数,不是bug ·round(x,d):对x四舍五入,d是小数截取位数 ·科学计数法,e或E作为幂符号,10为基数 <a>e<b>表示a*10^b 4.3e-3 为0.0043 (3)复数类型 ·a+bj a是实部,b是虚部 ·abs()、divmod()、pow()、round()、max()、min()、 int()、float()、complex() 9.strip():去掉字符串两侧指定字符 换行 \n 10.python中字母和汉字长度都是1 11.字符串类型及操作 len()、str()、hex(x):十六进制、oct(x):八进制

Python Tricks 若干

牧云@^-^@ 提交于 2020-02-28 21:00:03
赵斌 — APRIL 29, 2015 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。 ##json 字符串格式化 在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的。 这时候就可以用 python 来把 json 字符串漂亮的打印出来。 root@Exp-1:/tmp# cat json.txt {"menu": {"breakfast": {"English Muffin": {"price": 7.5}, "Bread Basket": {"price": 20, "desc": "Assortment of fresh baked fruit breads and muffins"}, "Fruit Breads": {"price": 8}}, "drink": {"Hot Tea": {"price": 5}, "Juice": {"price": 10, "type": ["apple", "watermelon", "orange"]}}}} root@Exp-1:/tmp# root@Exp-1:/tmp# cat json.txt | python -m json.tool { "menu": { "breakfast": { "Bread

函数式 Python 中的 Pipe 与 itertools

萝らか妹 提交于 2020-02-28 17:53:59
1、迭代器与管道函数式编程简介 可迭代器(iterable),不仅限于list/str等,还包括任何包含有yield关键字的函数,后者未必有规律的迭代特征。标准库中的itertools包提供了更加灵活的产生迭代器的工具,这些工具的输入大都是已有的迭代器函数的封装,并且itertools给出的函数都是针对广义迭代器而言。而len()等函数是针对狭义迭代器,即sequence(i.e. str, list, tuple)而言的。 以内置函数range()为例,执行结果会是一次性计算好整个序列。这对于很长的序列来说会比较耗时,甚至带来性能问题。因而,python还提供了内置函数,提供了惰性求值版本,那就是xrange()。它利用yield特性,第一次执行时仅仅返回迭代器,不到用时是不会求值的。 实际上,itertools提供的函数都是惰性的,并且给原内置函数都重写了惰性版本。如imap()对于内置的map()。 扩展库Pipe则对内置函数和部分itertools进行了封装,提供了类似unix bash下的管道式调用风格,更接近人类从左到右的阅读习惯,使得代码更加优雅。其他动态语言,如ruby, c#-lambda java8-lambda也都提供了类似的 链式调用 形式。 另外,也提供了@Pipe装饰器,可以非常方便地扩展出自己的管道函数,或者继续封装其他itertools中的有用函数。

Python基础

五迷三道 提交于 2020-02-28 16:12:47
Python基础 Python是时下最流行的编程语言之一,在诸多领域都有着广泛的应用。 目前Python的主流版本有Python2和Python3两个,在这里我们使用Python3来进行学习。 目录: 一、python的基本语法 二、python的基本数据类型 三、条件语句 四、循环语句 五、函数 六、文件 七、python常用模块 一、基本语法 1.Python用缩进划分语句块,缩进为四个空格或者一个TAB键,使用时要保持一致。 2.Python中使用print()输出,使用input()输入。 3.import和from … import … 可以进行包和模块的导入。 4.多个语句在一行中,要使用“;”分隔。 5.注释符是#,注释多行使用doc string(’’’…’’’,”””…”””)。 6.标识符:标识符对大小写敏感 标识符由字母,数字和下划线组成,其中第一个字符必须是字母或者下划线 二、基本数据类型 Python中常见的数据结构有六种:Number(数值)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)、Set(集合)。这些数据类型不仅可以提高Python的运行效率,还极大地提高了我们的开发效率。并且它们让Python的操作变得简单便捷。 在这6个标准的数据类型中: 不可变数据:3个:Number(数值)、String

Python高级编程-----读书笔记

我们两清 提交于 2020-02-28 12:41:08
1. Keep Code Simple Not Data l 减少代码,能减少生成的代码,因此能减少执行时间 2. 使用List Comprehensions构造List,快12倍 List Comprehension性能测试 使用List Comprehension使语法简洁,生成代码减少,执行显著加快 1 [i for i in range(10000000) if i % 2 == 0] 测试结果 6 function calls in 2.494 seconds Ordered by: standard name ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 2.491 2.491 :0(exec) 1 0.003 0.003 0.003 0.003 :0(setprofile) 1 0.000 0.000 2.491 2.491 <string>:1(<module>) 1 0.124 0.124 2.491 2.491 logtest.py:1(test1) 1 2.367 2.367 2.367 2.367 logtest.py:2(<listcomp>) 0 0.000 0.000 profile:0(profiler) 1 0.000 0.000 2

python定制类(以Fib类为例)

▼魔方 西西 提交于 2020-02-28 11:35:47
class Fib(object): def __init__(self): self.a, self.b = 0, 1 def __iter__(self): return self def __next__(self): #如果一个类想被用于for ... in循环,类似list或tuple那样,就必须实现一个__iter__()方法,该方法返回一个迭代对象, # 然后,Python的for循环就会不断调用该迭代对象的__next__()方法拿到循环的下一个值,直到遇到StopIteration错误时退出循环。 self.a, self.b = self.b, self.a+self.b if self.a > 100000: raise StopIteration() return self.a #要表现得像list那样按照下标取出元素,需要实现__getitem__()方法: #__getitem__()传入的参数可能是一个int,也可能是一个切片对象slice,所以要做判断 #也没有对负数作处理,所以,要正确实现一个__getitem__()还是有很多工作要做的。 #如果把对象看成dict,__getitem__()的参数也可能是一个可以作key的object,例如str。 #与之对应的是__setitem__()方法,把对象视作list或dict来对集合赋值。最后

二级python——(四)程序的控制结构

倾然丶 夕夏残阳落幕 提交于 2020-02-28 10:28:29
文章目录 考纲考点 流程图 程序的基本结构 判断条件及组合 程序的异常处理 作为输入 处理行为异常 猜数字游戏 考纲考点 程序的分支结构:单分支结构,二分支结构,多分支结构 程序的循环遍历:遍历循环(for),无限循环(while),break,continue 程序的异常处理:try-except 流程图 程序的基本结构 顺序结构 分支结构 循环结构 判断条件及组合 程序的异常处理 作为输入 try : n = eval ( input ( "输入一个数字:" ) ) # evaluste(求值),故将input的输入变成数字 print ( "请输入数字的3次方:" , n ** 3 ) except : print ( "输入错误,请输入一个数字" ) 处理行为异常 try : for i in range ( 5 ) : print ( 10 / i , end = '' ) except : print ( "某种原因, 出错了" ) 猜数字游戏 """猜数字游戏1~1000""" import random number = random . randint ( 1 , 1000 ) num_count = 0 while True : print ( "Please enter a number(1~1000): " ) try : guess_number =

Python基础之流程控制和循环结构

淺唱寂寞╮ 提交于 2020-02-28 06:52:23
一、流程控制 百度百科对流程控制的解释是“控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。不论是在声明式编程语言或是函数编程语言中,都有类似的概念。在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令,可能是运行不同位置的指令,或是在二段(或多段)程序中选择一个运行。”,其实流程控制就是人为的通过某些规则来控制程序的运行顺序,实现特定的功能。Python流程控制主要有 if while for continue break pass 等。下面就开始一一介绍吧~ 1.1 if 语句 1.1.1 简单 if 语句 语法: if 表达式: 语句 当表达式为真的时候执行 if 下面的语句,表达式为假的时候不执行。注意表达式后面有冒号!如: if 5 > 2 : print ( "hello world" ) #------------------# if 5 < 2 : print ( "hello world" ) 第一个表达式 5>2 为真,即打印hello world,第二个表达式 5<2 为假,即不打印后面的语句。 1.1.2 if-else 语法: if 表达式: 语句 1 else : 语句 2 当表达式为真的时候执行语句1,为假的时候执行语句2,如: if 5 > 2 : print ( "真的"