python for循环

Python中的深浅拷贝

余生长醉 提交于 2020-02-16 03:30:25
1.什么是深浅拷贝? python中一切皆对象,python中的数字、字符串、元组等,如果存放在了内存中,这部分内存里面的内容是不会改变的,但是也有情况,内存中存放了可变对象,比如说列表和字典,他们的内存空间是可以被修改的。 下面我们定义一个列表: list=[1,2,3,4,5] list1=list list[0]=6 >>>list [6,2,3,4,5] >>>list1 [6,2,3,4,5] 如果我们只想改变list,问题就出现了。 赋值操作 list1 = list,是浅拷贝,当list的值改变的时候,list1的值跟着改变。 2.用for和[:]实现浅拷贝 list = [ 1, 2, 3, 4, 5] list2= [ i for i in list] //list2=list[:] list2[-1]=0 >>> list >>> list2 [ 1, 2, 3, 4, 5] [ 1, 2, 3, 4, 0] 上面的例子,用for循环生成新的list2对象或者[:]切片赋值得到的list2,当改变list2的值时,list的值没有跟着改变,这就是深拷贝吗?且继续往下看: 3. list = [ 1, 2, 3, [ 1, 2009] ] list3 = [ i for i in list] //list2=list[:] list3[-1].append

python_基础知识回顾总结

人盡茶涼 提交于 2020-02-16 03:29:05
一、流程控制:if,while ,for 1、if……else 条件判断 语法: if 条件1:   代码块 elif 条件2:   代码块 …… else:   代码块 注:单纯的if语句里,从上到下,只要符合其中一个条件,就不会再执行下面的条件了。 2、while 无限循环 语法格式:(代码块可以是for循环或if条件判断循环,break,continu) while 条件:   代码块 --------------------------- while 条件成立时执行下面的代码块,不成立时执行else代码块,但一遇到break就直接退出循环,循环里的或else都不会执行:   代码块 else:   代码块 ---------------------------- 1 1、第一种情况 2 n = 1 3 while n < 5: 4 n +=1 5 print(n) -----> 2,3,4,5 6 7 2、第二种情况 8 n = 1 9 while n < 5: 10 print(n) ------->1,2,3,4 11 n +=1 12 13 3、第三种情况 14 while n < 5: 15 if n == 3: 16 break 17 print(n) 18 n +=1 19 ------->什么都没有,因为n =1或2时都不符合if条件,故不会执行里面的代码

Python学习笔记 | 变量 + 引用 + 拷贝 + 作用域

主宰稳场 提交于 2020-02-16 03:25:36
在Python中,变量是没有类型的,在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可。但是,当用变量的时候,必须要给这个变量赋值;如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义(not defined)。 一、变量和对象 1. 可变对象和不可变对象 在Python中,对象分为两种:可变对象和不可变对象,不可变对象包括int,float,long,str,tuple等,可变对象包括list,set,dict等。需要注意的是:这里说的不可变指的是值的不可变。对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收。另外,不可变的类型可以计算hash值,作为字典的key。可变类型数据对对象操作的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请(+/-)即可,也就是它的内存地址会保持不变,但区域会变长或者变短。 $ python3Python 3.5.3 (default, Feb 27 2017, 09:17:48) [GCC 6.3.0 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> a = 'phoenix'>>> a'phoenix'>>>

Python—迭代器和生成器

送分小仙女□ 提交于 2020-02-16 01:23:00
楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置。 如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序的取值,并不能跳过任何一个直接去取其他位置的值。 但你有没有想过,我们为什么可以使用for循环来取值? for循环内部是怎么工作的呢? 迭代器 python中的for循环 要了解python中的for循环是怎么回事儿,咱们还是要从代码的角度出发。 首先,我们对一个列表进行for循环。 for i in [1,2,3,4]: print(i) 上面这段代码肯定是没有问题的,但是我们换一种情况,来循环一个数字1234试试 for i in 1234 print(i) 结果: Traceback (most recent call last): File "test.py", line 4, in <module> for i in 1234: TypeError: 'int' object is not iterable 看,报错了!报了什么错呢?“TypeError: 'int'

深入理解python(二)python基础知识之数据结构

﹥>﹥吖頭↗ 提交于 2020-02-15 18:45:55
数据结构 Python中的内置数据结构(Built-in Data Structure): 列表list、元组tuple、字典dict、集合set,这里只着重说前三个 >>> d=dict(zip(('e','r'),(1,2))) >>> d.keys() dict_keys(['e', 'r']) >>> d.values() dict_values([1, 2]) >>> d.items() dict_items([('e', 1), ('r', 2)]) 列表 列表是Python中内置可变序列,是若干元素的有序集合。列表中的每一个数据称为元素,列表的所有元素放在一对中括号 [ 和 ] 中,并使用逗号分隔开 关于列表的一些重要操作函数汇总 接下来是几个列表涉及的重要知识点 1.extend()和append() extend()是将加入对象中的元素拼接到列表对象的后面,而append()则是将加入对象直接加入列表末尾。 例: >>> a=[1,2,3] >>> a.append([2,3]) #使用append >>> a [1, 2, 3, [2, 3]] >>> a=[1,2,3] >>> a.extend([2,3]) #使用extend >>> a [1, 2, 3, 2, 3] 2.列表的删除 一般想到列表的删除会想到循环+remove()的方法

python笔记19

﹥>﹥吖頭↗ 提交于 2020-02-15 17:55:15
今日内容 面向对象基本用法 好处和应用场景 面向对象的三大特性 内容详细 1.面向对象基本格式 # ###### 定义类 ###### class 类名: def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 def 方法名(self,name): print(name) return 123 # ###### 调用类中的方法 ###### # 1.创建该类的对象 obj = 类名() # 2.通过对象调用方法 result = obj.方法名('alex') print(result) 应用场景:遇到很多函数,需要给函数进行归类和划分。 【封装】 练习题: #!/usr/bin/env python # -*- coding:utf-8 -*- class Db: def db_read(self): pass def db_write(self): pass def db_delete(self): pass def db_update(self): pass class File: def file_read(self): pass def file_write(self): pass def file_delete(self): pass def file

python实现简单的购物程序

三世轮回 提交于 2020-02-15 17:50:27
需求:启动程序后,让用户输入工资,然后打印商品列表允许用户根据商品编号购买商品用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒可随时退出,退出时,打印已购买商品和余额 1 #!/usr/bin/ven python 2 # Author: Hawkeye 3 ''' 4 本程序为实例程序:购物车程序 5 6 需求: 7 8 启动程序后,让用户输入工资,然后打印商品列表 9 允许用户根据商品编号购买商品 10 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 11 可随时退出,退出时,打印已购买商品和余额 12 13 ''' 14 #创建商品列表 15 product_list = [ 16 ["Iphone",5800], 17 ["Mac Pro",9800], 18 ["bike",800], 19 ["watch",10600], 20 ["coffee",31], 21 ["Alex Python",20] 22 ] 23 # for i in product_list: 24 # print(i) 25 26 #创建购物列表 27 shopping_list =[] 28 #要求用户输入数据 29 salary = input("Input your salary:") 30 #首先要对用户的输入做判断 31 if salary.isdigit(): 32

计算机二级python知识点(1)

倖福魔咒の 提交于 2020-02-15 09:12:06
最近这两天在做计算机二级python的一些试题,这是我从中摘抄下来的一些知识点。 缩进是可以嵌套的,从而形成多层缩进 缩进表达了所属关系和代码块的所属范围 判断、循环、函数等都能够通过缩进包含一批代码 python语言采用严格的缩进来表示程序逻辑。缩进只每行语句开始前的空白区域,用来表示python程序间的包含和层次关系。一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if while for def class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表名后续代码与紧邻无缩进语句的所属关系。 len(x)返回字符串x的长度,一个中文字符和一个西文字符的长度都记为1 。“\”为转义字符,“\0”表示一个空格,长度记为1。 python是比大部分编程语言具有更高的软件开发量和简洁性。 python语言是一种被广泛使用的高级通用脚本编程语言,具有通用性,可以用于几乎任何与程序设计相关应用的开始,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、web开始等具体的技术领域。 python语言是解释执行的,因此执行速度比编译型语言慢。 对于需要更高执行速度的功能,例如数值计算和动画,python语言可以调用c语言编写的底层代码。 Except True pass while def为python语言保留字。 =

蓝桥杯python 基础练习5 查找整数

空扰寡人 提交于 2020-02-15 05:28:46
问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。 第三行包含一个整数a,为待查找的数。 输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。 样例输入 6 1 9 4 8 3 9 9 样例输出 2 思路:与上一题思路相同,将数字输入到列表中。在运用循环输出寻找的数的下标,如果没有就输出-1. while True : try : n = int ( input ( ) ) lis = list ( map ( int , input ( ) . split ( ) ) ) num = int ( input ( ) ) if num not in lis : print ( - 1 ) for i in range ( n ) : if lis [ i ] == num : print ( i + 1 ) break except : break 来源: CSDN 作者: 博创_馒头 链接: https://blog.csdn.net/qq_45804375/article/details/104311059

python基础学习浅学排序循环斐波那契(部分为网上引用)

浪尽此生 提交于 2020-02-15 03:25:39
自我学习:python中sorted方法和列表的sort方法使用详解: 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。 1.排序,数字、字符串按照ASCII,中文按照unicode从小到大排序 x = [3,6,2,1,7,9] x.sort() print(x) 输出为:[1,2,4,6,7,9] 创造一个排序好的副本,同时保持原列表不变: x = [4, 6, 2, 1, 7, 9] y = x[:] y.sort() print(y) # [1, 2, 4, 6, 7, 9] print(x) # [4, 6, 2, 1, 7, 9] 注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。 另一种获取已排序的列表副本的方法是使用sorted函数: x =[4, 6, 2, 1, 7, 9] y = sorted(x) print (y) #[1, 2, 4, 6, 7, 9] print (x) #[4, 6, 2, 1, 7, 9] sorted返回一个有序的副本,并且类型总是列表,如下: print (sorted(‘Python’)) #[‘P’, ‘h’, ‘n’, ‘o’, ‘t’, ‘y’] 2.可选参数