Python 学习之路(二)

Python 学习之路(二)

以下所用的是Python 3.6

一、条件语句

简单判断

1 if 判断条件:
2     执行语句……
3 else:
4     执行语句……

复杂判断

1 if 判断条件1:
2     执行语句1……
3 elif 判断条件2:
4     执行语句2……
5 elif 判断条件3:
6     执行语句3……
7 else:
8     执行语句4……

二、循环语句

2.1 while语句

和其他语言一样,不同的是多了else语句。在 python 中,while … else 在循环条件为 false 时执行 else 语句块。

例子:

1 count = 0
2 while count < 5:
3    print count, " is  less than 5"
4    count = count + 1
5 else:
6    print count, " is not less than 5"

2.2 for语句

1 for iterating_var in sequence:
2    statements(s)

else语句: 在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

1 for i in range(2,num): # 根据因子迭代
2       if num%i == 0:      # 确定第一个因子
3          j=num/i          # 计算第二个因子
4          print ‘%d 等于 %d * %d‘ % (num,i,j)
5          break            # 跳出当前循环
6    else:                  # 循环的 else 部分
7       print num, ‘是一个质数‘

2.3 break,continue语句

用在while,for语句中

2.4 pass语句

充当一个占位语句。

2.5 range函数

1 range(n) # 表示从0到n-1
2 range(a,b) #表示从a到b-1
3 range(a,b,step) #表示从a到b-1,步长为step

例:

1 for i in range(5,9):
2     print(i)

三、函数

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

3.1 函数举例

1 # 定义函数
2 def printStr( str ):
3    "打印任何传入的字符串"
4    print (str);
5    return;
6
7 printStr("name") # 函数调用

3.2 函数中参数的传递

在 python 中,类型属于对象,变量是没有类型的。strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象,可以理解为引用。

3.3 参数的几种方式

  • 必需参数:必需参数须以正确的顺序传入函数,调用时的数量必须和声明时的一样。
  • 关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
1 #可写函数说明
2 def printStr( str ):
3    "打印任何传入的字符串"
4    print (str);
5    return;
6
7 #调用printStr函数
8 printme( str = "name");
  • 默认参数:调用函数时,如果没有传递参数,则会使用默认参数。
1 def printStr( str="moren" ):
2    "打印任何传入的字符串"
3    print (str);
4    return;
  • 不定长参数:函数能处理比当初声明时更多的参数。
1 def functionname([formal_args,] *var_args_tuple ):
2    "函数_文档字符串"
3    function_suite
4    return [expression]

* 后的变量名会存放所有未命名的变量参数,是一个元组,没有参数时,为一个空元组。

3.4 return语句

例:

1 def sum( arg1, arg2 ):
2    # 返回2个参数的和."
3    total = arg1 + arg2
4    return total;

3.5 Lambda表达式

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
  • 格式:lambda [arg1 [,arg2,.....argn]]:expression
1 sum = lambda arg1, arg2: arg1 + arg2;

3.6 变量作用域

Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域。Python的作用域一共有4种,分别是:

  • L (Local) 局部作用域
  • E (Enclosing) 闭包函数外的函数中
  • G (Global) 全局作用域
  • B (Built-in) 内建作用域
  • 当内部作用域想修改外部作用域的变量使用:global(修改外部变量) 和 nonlocal(修改嵌套作用域)关键字

例1:

1 num = 1
2 def fun():
3     global num  # 需要使用 global 关键字声明
4     print(num)
5     num = 123
6     print(num)

例2:

1 def outer():
2     num = 10
3     def inner():
4         nonlocal num   # nonlocal关键字声明
5         num = 100
6         print(num)
7     inner()
8     print(num)
9 outer()

四、迭代器和生成器

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。

4.1 迭代器

1 list=[1,2,3,4]
2 it = iter(list)    # 创建迭代器对象
3 for x in it:
4     print (x, end=" ")

4.2 生成器

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

 1 import sys
 2
 3 def fibonacci(n): # 生成器函数 - 斐波那契
 4     a, b, counter = 0, 1, 0
 5     while True:
 6         if (counter > n):
 7             return
 8         yield a
 9         a, b = b, a + b
10         counter += 1
11 f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
12
13 while True:
14     try:
15         print (next(f), end=" ")
16     except StopIteration:
17         sys.exit()

五、模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。可以理解为库,通C/C++ 的include。

5.1 import语句

一个模块只会被导入一次。导入模块会从默认路径中选择,从当前工作目录,也可以通过sys中的sys.path来输出目录路径,来寻找这个包中包含的子目录。

1 import module1[, module2[,... moduleN]

例:

1 import sys

5.2 from…import 语句

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:

1 from modname import name1[, name2[, ... nameN]]
2 from modname import * #导入全部模块

这将把所有的名字都导入进来,但是那些由单一下划线(_)开头的名字不在此例。大多数情况, Python程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义。

5.3 __name__属性

如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

#!/usr/bin/python3
# Filename: using_name.py

if __name__ == ‘__main__‘:
   print(‘程序自身在运行‘)#在该模块内运行,才会执行
else:
   print(‘我来自另一模块‘)#在外部模块导入本模块,才会执行

5.4 包

目录只有包含一个叫做__init__.py的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。 最简单的情况,放一个空的__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为 __all__变量赋值。 例:

1 #第一种形式
2 import 根目录.二级目录.三级目录...# 根目录是存放着__init__.py的文件夹,也就是包
3
4 #第二种形式
5 from 根目录.二级目录.三级目录... import 对应函数 #导入对应模块中的函数
6 from packagename import * #导入该目录下的所有模块,但一般不采用这种做法

all__可以在import * 的时候只导入指定的.py模块。案例如下,定义在__init.py文件中

1 __all__ = ["模块1","模块2"...]

原文地址:https://www.cnblogs.com/CodeHu/p/8447247.html

时间: 2024-10-12 12:16:48

Python 学习之路(二)的相关文章

Python学习之路二

今天主要学习了列表,python的列表真的事太强大了,由于内容比较多,今天就先简单的介绍一下新学的几个成员函数吧. 首先我们要了解list是一种序列类型,其构造方式有四种形式: (1)空列表 [] (2)直接添加元素 [a] [a,b,c] (3)使用列表解析 [x for x in iterable] (4)使用构造函数 list() or list(iterable) 成员函数: append() 在末尾添加一个元素 extend() 以列表的形式在末尾添加 insert() 两个参数,第一

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu

Python学习之路——强力推荐的Python学习资料

资料一:程序媛想事儿(Alexia)总结 Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务. Python上手虽然容易,但与其它任何语言一样要学好Python并非一日之功.我的Pyth

Python 学习之路(三)

Python 学习之路(三) 以下所用的是Python 3.6 一.集合部分 集合是一个无序的,不重复的数据集合,主要用来去重,以及关系测试:交集,差集,并集等 1.1 关系操作 1.1.1 列表去重 可以给列表去重,例如: 1 set_demo = [1,2,3,4,5,3,2,1] # 列表 2 set_demo = set(set_demo) # 转换成集合,来去重 3 print(set_demo) 1.1.2 取交集 intersection()方法 可以获得两个集合的交集部分,例如:

Python学习之路(第一周)

走上软件开发之路已经三个年头.我本人是android原生开发出生.期间由于工作的需要以及开发的趋势发展,也走上混合开发的道路,现在主要运用ionic框架进行移动端app的开发.但是未来的互联网发展趋势还是大数据+人工智能.所以现在学习Python就很有必要.这里就不介绍Python语言的优劣了,想具体了解的小伙伴可以自行度娘吧. 好了,直接步入正题. 本博客主要记录自己接下来几个月的Python学习之路,能力有限,期间有什么表达不对的欢迎大家留言区批评指正! Python版本:Python3.5

Python学习之路—2018/7/11

Python学习之路-2018/7/10 3.功能开发 3.1 登录验证 login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <t

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

Python学习之路

Python学习之路 目录 Python学习之路[第一篇]:流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用 Python学习之路[第二篇]:文件,字符串,列表,元组,字典,集合的使用 更新中...

python 学习笔记 (二)

逻辑运算符 python不用&& || !表示与或非,用and or not,优先级是not > and > or. bool类型:True 和 False 条件语句 if expression1: ; elif expression2: ; else: ; 字符串函数 word = raw_input("Enter a word: ") # 读入字符串给word isalpha()  # 返回False如果字符串里含有非字母字符 word = word[n