python for循环

Python期末复习

喜夏-厌秋 提交于 2019-12-25 00:20:01
Python期末总复习 基本数据类型 数字类型 字符串类型 布尔类型 数据类型的转换 基本输入和输出 运算符 算术运算符 比较运算符 赋值运算符 逻辑运算符 位运算符 运算符的优先级 Python程序控制结构 Python分支结构 单分支结构 二分支结构 多分支结构 条件判断及组合 Python循环结构 遍历循环 无限循环 循环控制保留字 Python组合数据类型 列表与元组 序列 列表 元组 字典 集合 字符串 字符串类型的格式化 函数 函数定义: 参数 lambda函数 map函数 filter函数 reduce函数 sorted函数 函数递归 文件及操作目录 打开读取或创建文件的方式 open函数模式参数表 操作 Python异常处理 异常检测 基本数据类型 概念: 数据类型 就是数据的类型。 分类:数字类型、字符串类型、布尔类型 重点是数据类型的转换 数字类型 包括:整数、浮点数、复数 字符串类型 概念:字符串是连续的字符序列,可以是计算机所能表示的 一切字符 的集合 转义字符:指使用 “\” 对一些特殊字符进行转义。 布尔类型 判断正确与否 True: 1 Flase:0 可用于运算当中。 数据类型的转换 基本输入和输出 variable = input(‘输入文字’) print(‘输出内容’) 运算符 算术运算符 比较运算符 赋值运算符 逻辑运算符 位运算符

善于使用列表推导、集合推导与字典推导 #P003#

若如初见. 提交于 2019-12-24 21:47:05
推导式是一个可以从现有数据序列构建另一个新的数据序列的结构体。Python共提供了三种推导式,在Python 2和 Python 3中都支持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式 其中,最常用的是列表推导(list comprehension,又称列表解析式)。在这篇文章中,将用列表推导作为例子对Python的推导式进行系统性的介绍,然后再简单介绍字典推导与集合推导,之后还会介绍推导式与Python内置函数集成的例子,最后,会给出一些比较实用的推导式,用以巩固练习。 1 列表推导的含义与语法 列表推导式提供了一种简明扼要的方法来创建列表。列表推导的语法是在一个中括号里包含一个表达式,然后是一个for语句,然后是0个或多个for语句或者if语句。 列表推导中的“表达式”可以是任意的,也就是说,可以在创建新的列表时,顺便进行一些运算操作。运算操作的结果,将会构成新的列表进行返回。 列表推导的形式化定义如下: variable = [expr for iter_item in iterable if cond_expr] 列表推导对快速生成列表非常有用,尤其适合遍历一个列表,并进行简单的计算,然后产生一个新的列表。例如,要获取0~9的平方的列表,初级Python工程师通常会这样做: squared = [] for x in range(10):

牢记数据结构的时间复杂度 #P004#

人走茶凉 提交于 2019-12-24 21:37:09
虽然大多数情况下,Python程序都不会应用在计算密集型的场景。但是,作为一个合格的工程师,依然应该对Python内置数据类型的时间复杂度有一个基本的了解,才能够避免写出一些明显低效的代码。打个比方,我们都知道,在Python里面list是异构元素的集合,并且能够动态增长或收缩,可以通过索引和切片访问。那么,又有多少人知道,list是一个数组而不是一个链表呢。 1 时间复杂度的重要性 算法的时间复杂度是用来度量算法的运行时间,算法的空间复杂度用来度量程序占用的内存,这两个都是计算机系统中非常重要的概念。它们直接关乎程序的运行效率,其重要程度怎么强调都不为过。在这一小节中,我们将通过一个Python字符串连接的例子,来解释说明程序的时间复杂度和空间复杂度的重要性。 合格的Python工程师应该知道,Python中的字符串是不可变的。因为Python中的字符串是不可变的,在进行字符串操作时,Python每次操作都会产生一个新的字符串,新的字符串会占用一块独立的内存。因此,在操作字符串时,应该避免产生太多的中间结果。例如,下面就是一个典型的反面教材: In [1]: fruits = ['orange', 'apple', 'banana', 'pear'] In [2]: statement = fruits[0] In [3]: for item in fruits[1:]: ...

python中元组的创建及应用

谁说我不能喝 提交于 2019-12-24 20:02:26
1. 元组的创建 元组:元组本身是不可变数据类型,没有增删改查 元组可以存储任意数据类型 1 2 t = ( 1 , 2.3 , 'westos' , True ) #定义一个元组 print ( t , type ( t ) ) #打印这个元组和类型 1 2 可以看到,这样定义的数据类型为元组类型 元组里包含可变数据类型,可以间接修改元组内容 1 t1 = ( [ 1 , 2 , 3 ] , 4 ) t1 [ 0 ] . append ( 5 ) #在索引 0 处追加一个 5 元素 print ( t1 ) #查看元组 1 2 3 元组如果只有一个元素的时候 # t2 = ( 'hello' ) #此种方式建立的是一个字符串,不是一个元组 t2 = ( 'hello' , ) #加一个逗号,可以看到,这种方式创建的是一个元组 print ( t2 , type ( t2 ) ) 1 2 3 2. 元组的特性 users = ( 'root' , 'westos' , 'redhat' ) #定义元组,存储用户名 passwds = ( '123' , '456' , '789' ) #再定义一个元组,存储用户名对应的密码 1 2 2.1 索引 切片 print ( users [ 0 ] ) #打印users元组的索引值为 0 的元素 print ( users [ - 1 ]

Python2.x与3.x版本区别

你说的曾经没有我的故事 提交于 2019-12-24 17:50:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。 为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。 新的Python程式建议使用Python 3.0版本的语法。 除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python 3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。 大多数第三方库都正在努力地相容Python 3.0版本。即使无法立即使用Python 3.0,也建议编写相容Python 3.0版本的程式,然后使用Python 2.6, Python 2.7来执行。 Python 3.0的变化主要在以下几个方面: print 函数 print语句没有了,取而代之的是print()函数。 Python 2.6与Python 2.7部分地支持这种形式的print语法。在Python

python学习值字典和集合

房东的猫 提交于 2019-12-24 16:49:03
集合定义总结 创建一个空集合必须用 set() 而不是 { }.{ } 是用来创建一个空字典。 集合里面的元素必须是不可变的数据类型。 通过set方法可以将列表/元组/字符串转换成集合数据类型。 >>> s1 = {} >>> type(s1) <class 'dict'> >>> s2 = {1, 2, 3} >>> type(s2) <class 'set'> >>> s3 = {1, 3.14, True, 'hello', [1, 2, 3], (1, 2, 3)} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' >>> s3 = {1, 3.14, True, 'hello',(1, 2, 3)} >>> type(s3) <class 'set'> >>> s4 = set([]) >>> type(s4) <class 'set'> >>> s5 = set('abcde') >>> s5 {'c', 'e', 'b', 'a', 'd'} >>> type(s5) <class 'set'> 集合(set)是一个无序的不重复元素序列。1,2,3,4,1,2,3 = 1,2,3,4 集合的创建: 1).

python学习之函数

故事扮演 提交于 2019-12-24 16:40:18
函数概述 从实现函数的角度来看,其至少需要想清楚以下 3 点: • 函数需要几个关键的需要动态变化的数据,这些数据应该被定义成函数的参数。 • 函数需要传出几个重要的数据(就是调用该函数的人希望得到的数据),这些数据 应该被定义成返回值。 • 函数的内部实现过程。 函数创建和调用 #1). 定义函数: #def 函数名(参数1, 参数2........): #函数执行的内容 #2). 定义函数时指定参数和返回值的类型 #def mymax(num1: int, num2: int) -> int: #代表num1需要传入整形, num2需要传入整形, 返回值必须是整形。 #3). 函数的帮助文档: 三引号 def mymax(num1: int, num2: int) -> int: """ 求两数的最大值 :param num1: 第一个数值 :param num2: 第二个数值 :return: 最大值 """ #if num1 > num2: #return num1 #else: #return num2 return num1 if num1 > num2 else num2 #调用函数 max_num = mymax(2, 1) print(max_num) #print(help(mymax)) 定义空函数 #定义函数的时候, 函数内部代码不会执行。

python学习之文件操作及异常处理

旧街凉风 提交于 2019-12-24 16:40:11
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。 open(文件名,访问模式) e.g. f = open('test.txt', 'w') 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据 要读取二进制文件,比如图片、视频等等,用'rb', 'wb', 'ab'等模式打开文件即可 seek(offset, from)有2个参数: offset:偏移量 from:方向 0:表示文件开头; 1:表示当前位置; 2:表示文件末尾 1). 把位置设置为:从文件开头,偏移5个字节 2). 把位置设置为:文件最开始 3). 把位置设置为:文件最末尾 01_open函数读取文件操作.py #打开文件/etc/passwd, 默认的打开模式是'r' f = open('/etc/passwd') print(f.read()) #io.UnsupportedOperation: not writable #f.write('hello') 02_open以写的方式打开文件.py """ ##mode=r, 文件不存在,直接报错; 只能read ##FileNotFoundError: [Errno 2] No such file or directory: 'doc/hello.txt' #f = open('doc/hello.txt')

python学习之高级特性

冷暖自知 提交于 2019-12-24 16:36:19
一、生成式 1、定义 生成式就是一个用来快速生成特定语法形式的表达式。 列表生成式:用来快速生成列表 字典生成式:用来快速生成字典 集合生成式:用来快速生成集合 2、语法格式 (1)普通的语法格式:[exp for iter_var in iterable] (2)带过滤功能语法格式: [exp for iter_var in iterable if_exp] (3)循环嵌套语法格式: [exp for iter_var_A in iterable_A for iter_var_B in iterable_B] 01_列表生成式.py #需求: 生成100个1~50之间的随机数值。 import random def use_list_expression(count=100, start=0, end=50): """第一种: 使用列表生成式实现需求""" return [random.randint(start, end) for count in range(count)] def use_loop(count=100, start=0, end=50): """第二种: 使用for循环与传统的方式实现需求""" nums = [] for count in range(count): num = random.randint(start, end) nums.append

python迭代器和生成器

这一生的挚爱 提交于 2019-12-24 12:04:55
迭代器和生成器 迭代器 迭代的概念 迭代就是重复的过程,每重复一次就是一次迭代,并且每次迭代的结果作为下一次迭代的初始值。 #不是迭代,只是重复 while True: p = input('>>:') print p #迭代,每次循环基于上一次的返回值 l = [1,2,3,4] t = 0 while t < len(l): print(l[t]) t += 1 可迭代对象 为了提供一种不依赖于索引的迭代方式,python会为一些对象内置 __iter__方法。python中,字符串、列表、元组、字典、集合、文 件都是可迭代对象。 判断是否为可迭代对象可以导入Iterable模块__iter__ from collections import Iterable f = open('a.txt','w') f.__iter__() # 下列数据类型都是可迭代的对象 print(isinstance('abc',Iterable)) # 字符串 print(isinstance([1,2,3],Iterable)) # 列表 print(isinstance({'a':1,},Iterable)) # 字典 print(isinstance({1,2,3},Iterable)) # 集合 print(isinstance((1,2,),Iterable)) # 元组 print