python for循环

python学习第一天

社会主义新天地 提交于 2020-03-06 08:23:55
一、编译型vs解释型 编译型 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。 解释型 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。 二、Python的优缺点 先看优点 Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)

Python学习笔记

拈花ヽ惹草 提交于 2020-03-06 05:51:12
Python 学习笔记 在windows操作系统中,推出python命令提示行的快捷键是先按ctrl+z,然后再按Enter。 Python 是大小写敏感的。要确保每一行的开始字符前没有空格和制表符。 # 为注释符号。 如果想要获取某个python函数或者语句的快速帮助信息,可以使用内建的help功能,特别是在使用带提示符的命令行的时候。这个时候可以按q退出帮助。 一、基本概念 1 、数 Python 中有四种类型的数:整数,长整数,浮点数和复数。 2 、字符串 如何在python中使用字符串? (1)使用单引号 原样保留 (2)使用双引号 使用与单引号完全相同。 (3)使用三引号(’’’或者”””) 利用三引号,可以指示一个多行的字符串,可以在三引号中自由的使用单引号和双引号。 (4)转义符 如果想在一个字符串中包含单引号,可以采用反斜杠\,当然,这种情况也可以使用双引号来表示字符串,这样的话python也能识别中间的单引号了。 另外,如果需要在双引号中使用双引号本身的时候,也可以借助于转义字符。 需要注意的是,行末的单独一个反斜杠表示字符串在下一行继续,而不是重新开始一个新的行。 (5)自然字符串 如果你想要指定某些不需要如转义符那样特别处理的字符串,那么需要指定一个自然字符串,它通过在字符串前加前缀r或者R来指定。 (6)Unicode字符 在字符串前加上u或者U来实现。

1.Python基础入门及基础语法

不羁岁月 提交于 2020-03-06 05:18:57
一.Python基础入门 1.第一句python文件后缀名: 文件后缀名是.py 2.两种执行方式: (1)把文件地址交给python解释器,python解释器去找到这个文件读到内存执行 (2)进入解释器:解释器运行起来,等待用户输入东西,用户输入什么解释器处理什么(实时输入并获取到执行结果) 3.解释器路径: #!/usr/bin/env python 4.编码: # -*- coding:utf8 -*- Python3无需关注 Python2每个文件中只要出现中文,头部必须加 5.执行一个操作(提醒用户输入:用户和密码) input的用法,永远等待,直到用户输入了值,就会将输入的值赋值给n,n代指用户输入的内容 #!/usr/bin/python # -*- coding: utf-8 -* n1 = input('请输入用户名: ') n2 = input('请输入密码: ') print(n1) print(n2) 结果: 请输入用户名: 18 请输入密码: 123456 18 123456 二.python的语言类型 1.静态编译语言 (1)实现声明变量类型,类型不能再改变 (2)编译时检查 2.动态编译语言 (1)不用事先声明类型,随时可以赋值为其他类型 (2)编程时不知道是什么类型,很难推断 3.强类型语言 (1)不同类型之间操作,必须先强制类型转换为同一类型

Python基础之函数基本用法与进阶详解

邮差的信 提交于 2020-03-06 04:27:52
本文实例讲述了Python基础之函数基本用法与进阶。分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部 如果希望一个函数 执行完成后,向外界汇报执行结果,就可以增加函数的返回值 1.1 无参数,无返回值 此类函数,不接收参数,也没有返回值,应用场景如下: 只是单纯地做一件事情,例如 显示菜单 在函数内部 针对全局变量进行操作,例如:新建名片,最终结果 记录在全局变量 中 注意: 如果全局变量的数据类型是一个 可变类型,在函数内部可以使用 方法 修改全局变量的内容 —— 变量的引用不会改变 在函数内部,使用赋值语句 才会 修改变量的引用 1.2 无参数,有返回值 此类函数,不接收参数,但是有返回值,应用场景如下: 采集数据,例如 温度计,返回结果就是当前的温度,而不需要传递任何的参数 1.3 有参数,无返回值 此类函数,接收参数,没有返回值,应用场景如下: 函数内部的代码保持不变,针对 不同的参数

简谈-Python生成器

你说的曾经没有我的故事 提交于 2020-03-06 02:58:39
1. 什么是生成器   生成列表的方法:1、a = [11,22,33]           2 、a = [x for x in range(5)]           3、 a = [] ,并通过append 来添加   通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含 100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。 在 Python中,这种一边循环一边计算的机制,称为生成器:generator 。 2. 创建生成器   要创建一个生成器,有很多种方法。第一种方法很简单,只要把一个列表生成式的 [ ] 改成 ( )      创建 L 和 G 的区别仅在于最外层的 [ ] 和 ( ) , L 是一个列表,而 G 是一个生成器。 我们可以直接打印出 L的每一个元素,但我们怎么打印出G的每一个元素呢?如果要一个一个打印出来, 可以通过 next() 函数获得生成器的下一个返回值:      生成器保存的是 算法 ,每次调用 next(G) ,就计算出 G 的下一个元素的值,直到计算到最后一个元素

python —— 生成器

Deadly 提交于 2020-03-06 02:57:49
  通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。 在Python中,这种一边循环一边计算的机制,称为生成器:generator。    1、创建生成器方法一   把一个列表生成式的 [ ] 改成 ( )   生成器保存的是算法,每次调用 next(G) ,就计算出 G 的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出 StopIteration 的异常。当然,这种不断调用 next() 实在是太变态了,正确的方法是使用 for 循环,因为生成器也是可迭代对象。所以,我们创建了一个生成器后,基本上永远不会调用 next() ,而是通过 for 循环来迭代它,并且不需要关心 StopIteration 异常。     2、创建生成器方法二   用函数来实现,如下getNum(num) 1 # test.py 2 def getNum(num): 3 a,b = 0,1 4 print("*****") 5 for i in range(num): 6

python 生成器 generator

折月煮酒 提交于 2020-03-06 02:56:40
一、生成器定义 通过列表生成表达式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。 1 >>> l = [x * x for x in range(10)] 2 >>> l 3 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 4 >>> g = (x * x for x in range(10)) 5 >>> g 6 <generator object <genexpr> at 0x1013e0780> 二、表达式生成器 创建l和 g 的区别仅在于最外层的[]和() ,l是一个list,而 g 是一个generator。可以直接打印出l的每一个元素,打印出g的每一个元素需要使用next()函数。 1 >>> g = (x * x for x in range(10)) 2 >>> g 3 <generator object <genexpr> at 0x1013e0780> 4 >>> next(g) 5 0 6 >>> next(g) 7 1 8 >>> next(g) 9 4 10 >>> next(g) 11

Python面试题之生成器/迭代器

孤街醉人 提交于 2020-03-06 02:54:57
1.为什么要有生成器? 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以。。。 在循环的过程中不断推算出后续的元素,这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。 第一种方法很简单,只要把一个列表生成式的 [] 改成 () ,就创建了一个generator,其实就是一个tuple。 L = [x * x for x in range(10)] print(L) print(type(L)) L2 = (x * x for x in range(10)) print(L2) print(type(L2)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # <class 'list'> # <generator object <genexpr> at 0x00FE4FC0> # <class 'generator'> 创建 L 和L2的区别仅在于最外层的 [] 和 () , L 是一个list,而L2是一个generator。

python基础面试题整理---从零开始 每天十题(03)

别说谁变了你拦得住时间么 提交于 2020-03-06 02:54:36
一、Q: 用Python输出一个Fibonacci数列?(斐波那契额数列)   A:我们先来看下代码 #!/usr/bin/env python # -*- coding: utf-8 -*- def fib_recur(n): if n <= 1: return n return fib_recur(n - 1) + fib_recur(n - 2) for i in range(1, 20): print(fib_recur(i), end=" ") 我们来详细的看一下代码,我们知道斐波那契数据为1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,由此我们可以得知,   F(0) = 0   F(1) = 1,   F(2) = F(1) + F(0),   F(3) = F(2) + F(1),   F(4) = F(3) + F(2),   F(5) = F(4) + F(3) 所以我们可以得知F(n) = F(n-1) + F(n-2)。 二、Q:介绍一下Python中webbrowser的用法?   A:webbrowser主要是用来驱动浏览器进行操作的,最简单的实例。 #!/usr/bin/env python # -*- coding: utf-8 -*- import webbrowser as

Python高级特性

你离开我真会死。 提交于 2020-03-06 02:53:51
减少代码,提高效率 1.切片 取一个序列的部分元素 L [ start : end : step ] 含头不含尾 1 #!/usr/bin/python3 2 # -*- coding:utf-8 -*- 3 4 L = [ 1, 3, 6, 9, 45, 66] 5 6 print ( L[:4] ) #等同于L[0:4] 切片下标为 0 ~ 3 7 print ( L[-2:] ) #倒数切片 从倒数第2开始往后切 倒数第二、倒数第一 8 print ( L[:5:2] ) #前5个数,每2个取一个 9 print ( L[::5] ) #所有数,每5个取一个 L[ : : -1] 倒切 2.迭代 在Python中,迭代是通过 for...in 来完成的,而很多语言迭代 list 是通过下标完成的。 无论有无下标都可以迭代,如dict dict不是按顺序排列存储,迭代出的结果顺序很可能不一样 dict默认迭代 key 如要要迭代 value: 同时迭代 key 和 value : 判断是否可以迭代 3.迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 凡是可作用于for循环的对象都是Iterable类型,即迭代对象 凡是可作用于next()函数的对象都是Iterator类型,即迭代器,表示一个惰性计算的序列(只有在需要返回下一个数据时它才会计算)