python for循环

27 python 定义 列表 序列的基本操作 序列的分片

醉酒当歌 提交于 2020-01-03 22:48:08
第一课 定义 列表 # 列表和元组 ---- 序列 # 序列:是数据元素的集合,数据元素可以是数值、字符串、布尔类型、对象等。 # 序列的类型:列表和元组 # 列表: 把一组值简单的放在一起的一种方式 和数组类似 name = "Bill" names = ["Bill", "Mary", "John"] values = ["Bill", True, False, 10,20.5,[1,2,3,4,5]] print(names) # 输出结果为:['Bill', 'Mary', 'John'] 把双引号变成了单引号 这个无关紧要 print(values) # 输出结果为:['Bill', True, False, 10, 20.5, [1, 2, 3, 4, 5]] for value in values: # 通过for 语句 挨个获取 每一个列表中的值 print(value) ''' 输出结果 循环遍历 Bill True False 10 20.5 [1, 2, 3, 4, 5] ''' --------------------------------------- 第二课 序列的基本操作 通过索引操作序列元素 (也就是说列表和元组都是可以通过索引操作元素) // 也就可以理解为shell中的三剑客 grep sed awk 这样子的操作 # 序列的基本操作 ----

Python--3 判断和循环语句

旧街凉风 提交于 2020-01-03 22:26:10
判断语句和循环语句 1.1 判断语句介绍 1、生活中的判断场景 网咖 2、开发中的判断场景 密码判断 重要日期判断 1.2 if 语句 Python 条件语句是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程 : Python 程序语言指定任何非 0 和非空( null )值为 true , 0 或者 null 为 false 。 Python 编程中 if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句 …… else : 执行语句 …… if 语句的判断条件可以用 > (大于)、 <( 小于 ) 、 == (等于)、 >= (大于等于)、 <= (小于等于)来表示其关系。 当判断条件为多个值是,可以使用以下形式: if 判断条件 1:   执行语句 1…… elif 判断条件 2:   执行语句 2…… elif 判断条件 3:   执行语句 3…… else:   执行语句 4…… 和其他语言一样, if 也可以嵌套 if expression1: statement(s) if expression2: statement(s) elif expression3: statement(s) else statement(s) elif expression4: statement

使用Python实现生产者消费者问题

╄→尐↘猪︶ㄣ 提交于 2020-01-03 21:16:09
之前用C++写过一篇生产者消费者的实现。 生产者和消费者主要是处理互斥和同步的问题: 队列作为缓冲区,需要互斥操作 队列中没有产品,消费者需要等待,直到生产者放入产品并通知它。队列慢的情况类似。 这里我使用list模拟Python标准库的Queue,这里我设置一个大小限制为5: SyncQueue.py from threading import Lock from threading import Condition class Queue(): def __init__(self): self.mutex = Lock() self.full = Condition(self.mutex) self.empty = Condition(self.mutex) self.data = [] def push(self, element): self.mutex.acquire() while len(self.data) >= 5: self.empty.wait() self.data.append(element) self.full.notify() self.mutex.release() def pop(self): self.mutex.acquire() while len(self.data) == 0: self.full.wait() data = self

pytorch :: Dataloader中的迭代器和生成器应用

拈花ヽ惹草 提交于 2020-01-03 10:38:29
在使用pytorch训练模型,经常需要加载大量图片数据,因此pytorch提供了好用的数据加载工具Dataloader。 为了实现小批量循环读取大型数据集,在Dataloader类具体实现中,使用了迭代器和生成器。 这一应用场景正是python中迭代器模式的意义所在,因此本文对Dataloader中代码进行解读,可以更好的理解python中迭代器和生成器的概念。 本文的内容主要有: 解释python中的迭代器和生成器概念 解读pytorch中Dataloader代码,如何使用迭代器和生成器实现数据加载 python迭代基础 python中围绕着迭代有以下概念: 可迭代对象 iterables 迭代器 iterator 生成器 generator 这三个概念互相关联,并非孤立。在可迭代对象的基础上发展了迭代器,在迭代器的基础上又发展了生成器。 学习这些概念的名词解释没有多大意义。编程中很多的抽象概念都是为了更好的实现某些功能,才去人为创造的协议和模式。 因此,要理解它们,需要探究概念背后的逻辑,为什么这样设计?要解决的真正问题是什么?在哪些场景下应用是最好的? 迭代模式首先要解决的基础问题是,需要按一定顺序获取集合内部数据,比如循环某个list。 当数据很小时,不会有问题。但当读取大量数据时,一次性读取会超出内存限制,因此想出以下方法: 把大的数据分成几个小块,分批处理

Python 海龟绘图 100 题——第 32 题

时光总嘲笑我的痴心妄想 提交于 2020-01-03 09:53:06
题目:绘制下面的图形 解析: 循环绘制长方形里面一个小正方形 答案: import turtle as t for i in range ( 0 , 2 ) : t . fd ( 140 ) t . lt ( 90 ) t . fd ( 80 ) t . lt ( 90 ) t . pu ( ) t . fd ( 50 ) t . lt ( 90 ) t . fd ( 20 ) t . pd ( ) for i in range ( 0 , 4 ) : t . fd ( 40 ) t . rt ( 90 ) 来源: 玩转Python海龟绘图 来源: CSDN 作者: judi0713 链接: https://blog.csdn.net/u014297578/article/details/103804539

Python 流程控制

耗尽温柔 提交于 2020-01-03 08:13:53
一、流程控制之判断 if:主要用于判断事物的对错,真假,是否可行 语法结构: if 条件: 代码块1 elif 条件: 代码块2 else 条件: 代码块3 例1: gender = "female" age = 18 is_beautiful = True is_success = True if age == 18 and gender == 'female' and is_beautiful == True: print("表白小姐姐") if is_success: print('在一起') else: print('什么爱情不爱情的,爱nmlgb的爱情') else: print('走开') 例2: score = input('>>>:') score = int(score) if 90 <= score: print("优秀") elif score >= 80: print("良好") elif score >= 70: print("中等") elif score >= 60: print("及格") else: print("不及格") 例3:#登录功能 username = input('请输入您的用户名:').strip() password = input('请输入您的密码:').strip() if username == "bob" and

替换空格(C++和Python 实现)

别等时光非礼了梦想. 提交于 2020-01-03 03:52:25
(说明:本博客中的 题目 、 题目详细说明 及 参考代码 均摘自 “何海涛《 剑指Offer:名企面试官精讲典型编程题 》2012年”) 题目 请实现一个函数,把字符串中的每个空格替换为 "%20" 。例如输入 "We are happy.", 则输出 "We%20are%20happy." 。 进一步详细说明: 在网络编程中,如果 URL 参数中含有特殊字符,如空格、'#'、':' 等,可能导致服务器端无法获得正确的参数值。我们需要这些特殊符号转换成服务器可以识别的字符。转换规则是在 '%' 后面跟上 ASCII 码的两位十六进制的表示。如空格的 ASCII 码是 32,即十六进制的 0x20,因此空格被替换成 "%20" 。再比如 '#' 的 ASCII 码为 35,即十六进制的 0x23,它在 URL 中被替换为 "%32"。再比如 ':' 的 ASCII 码为 50,即十六进制的 0x32,它在 URL 中被替换为 "%32"。 算法设计思想 1. 时间复杂度为 O(n 2 ) 的算法思想 从头到尾,扫描字符串中的每个字符,遇到空格,先将剩余的字符(未遍历到的字符串)整体向后移动2个位置,然后,在空格和其后的2个字符的替换为"%20"。 2. 时间复杂度为 O(n) 的算法思想 先遍历整个字符串,计算字符串中空格的总数,从而可以计算出替换后的字符串长度(根据替换规则

Python中的切片操作

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-03 00:54:28
原文地址: https://www.cnblogs.com/zhangjiansheng/p/6853640.html python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子。 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>> for i in range(1,100)[6::7]: print i 7 14 21 28 35 42 49 56 63 70 77 84 91 98 取一个list或tuple的部分元素是非常常见的操作。比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素,应该怎么做? 笨办法: >>> [L[0], L[1], L[2]] ['Michael', 'Sarah', 'Tracy'] 之所以是笨办法是因为扩展一下,取前N个元素就没辙了。 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: >>> r = [] >>> n = 3 >>> for i in range(n): ... r.append(L[i]) ... >>> r ['Michael', 'Sarah', 'Tracy'] 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片

python的模块

徘徊边缘 提交于 2020-01-02 22:44:45
1、列表推导式 num = [1,2,3,4,5,8] new_nums =[str(x) for x in num]#这种就是推导式写法,与你写一大堆循环得出的结果是一样的,这样写会更简单,逼格更高而已 print(new_num) 2、一个函数最好实现一个功能 #测试开发 开发工具,开发平台 #自动化测试 通过写代码来进行测试,提高测试效率 3、实现同样的功能,代码越少越牛逼 内置函数 就是python内置的函数,python自己已经写好的函数如 int() string() print() len()、type()。。。。。。 #print(dir(a))#打印变量可以使用的所有的方法,适用于我们在写代码时想使用一种方法时.不出来方法时使用,可以轻松打印出可以使用的方法,打印传入对象的可调用方法 #print(eval'[]')#用来执行python代码的,只能执行简单的,定义数据类型和运算 #exec()#执行python代码用的,一般都是用在网站上比如在线运行代码的网站,这个函数是没有返回值的; #zip #将两个list压缩在一起 #print(chr(10))#打印数字对应的ascii #print(ord('b'))#打印字符串对应的ascii码 #sorted()#安升序排序(默认),如果想降序,加上一个reverse = Trun,就成了降序

Python基础一

℡╲_俬逩灬. 提交于 2020-01-02 18:15:50
1、Python入门 1.1 第一个python代码   1. 解释器:即时调试代码,代码无法永久保存   2. 文件:永久保存代码   在E:\PythonProject目录下新建文件hello.py, 编写代码如下 print('hello world') 执行hello.py, 即E:\PythonProject/hello.py python 内部执行过程示意: 其实上述执行hello.py时,已明确指定由python解释器执行完成。 1.2 python编码格式 python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8。 我们在linux环境中会运行一些python脚本,例如:./hello.py ,我们就需要在脚本开始处指定解释器,如下: #!/usr/bin/env python #Linux系统下有效 # -*- coding: utf-8 -*- print('hello world') PS: 注意添加执行权限 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话: #!/usr/bin/env python print "你好,世界" 报错,原因是ascii码无法表示中文 改正:应该显示的告诉python解释器