Python(基础)第二天

    Python中我们使用缩进级别来告诉Python那些语句分别属于哪个块。这便是为什么在Python中缩进如此重要。必须坚持“缩进一致”的原则。
    Python中不存在switch语句,可以通过if..elif..else语句来实现同样的事情(在某些情况下,使用一部字典能够更快速地完成)
    while语句能够让你在条件为真的前提下重复执行某块语句,你可以在while循环中使用else从句
    for...in语句是另一种循环语句,其特点是会遍历序列中的每一个项目。队列就是一系列项目的有序集合。
for i in range(1,5)从第一个数字开始至第二个数字结束。取不到5,默认情况下range函数以1逐步递增。如果我们向range提供第三个数字譬如:range(1,5,2)则这个2表示逐步递增的加数。range()每次只会生成一个数字,如果要获得完整的数字列表,要在使用range()时调用list()。列如这样:list(range(5)),它会返回[0,1,2,3,4]。
    同样得记住,else部分是可选的。当循环包含else时,它总会在for循环结束后开始执行,除非程序遇到了break语句。另外值得注意的地方是for...in能在任何队列中工作。这个例子中是通过内置函数range函数生成了一串数字列表,但总体来说我们可以包含任何类型对象的队列。
    Python 中for循环与c/c++中的for循环完全不同。
break语句用于中断循环语句,也就是中止循环语句的执行,即使循环条件没有变更为False,或者队列中的项目尚未完全迭代依旧可以中断。注意,如果你的 中断 了一个for或者while循环,任何相应循环中的else块都将不会执行。
    输入字符串的长度可以通过内置的len函数来找到。
continue语句:
    continue 语句用以告诉Python跳过当前循环块中的剩余语句,并继续该循环的下一次迭代。
    控制流语句 if while for 以及相关的break 和 continue语句的工作情况。
函数:
    指可重复使用的程序片段。它们允许你为某个代码块赋予名字,允许通过这一特殊名字在你的程序任何地方来运行代码块,并重复任何次数,这就是所谓的调用(calling)函数。
函数可以通过关键字def来定义,关键字后跟这一个函数的标识符名称,在跟一对圆括号,括号内可以包括一些变量的名称,然后再以冒号结尾,结束这一行。随后的语句块是函数的一部分。
    函数参数:当我们调用函数时,我们以同样的形式提供需要的值。在定义函数时给定的名称称作“形参(Parameters)”,在调用函数时你提供的函数值称作“实参(Arguments)”
    局部变量:当你在一个函数定义中声明变量时,它们不会以任何方式与身处函数之外但具有相同名称的变量产生关系。这些变量名只是存在函数这一局部中(Local),通常被称为变量的作用域(Scope),所有变量的作用域是它们被定义的块。从定义它们名字的定义点开始。

global语句:
(在函数中修改最外边代码块中定义的变量)
    如果你想给一个在程序顶层的变量赋值(也就是说它不存在任何作用域中,无论是函数还是类),那么你必须告诉Python这一变量并非局部的,而是全局的。通过global语句来完成这件事。因为在不是用global语句的情况下,不可能为一个定义于函数之外的变量赋值。

默认参数值:定义函数时附加一个赋值运算符(=)来为参数指定默认参数值。得注意的是默认参数值是不能更改的。
    在Python中,只有那些位于参数列表末尾的参数才能被赋予默认参数值,即在函数的参数列表中拥有默认参数值的参数不能位于没有默认值得参数之前。

    关键字参数:(只对我们希望赋予的参数赋值其他的参数具有默认值)如果你有一些具有许多参数的函数,而你又希望只对其中一些进行指定,那么你可以通过命名它们来给这些参数赋值。这就是关键字参数。我们可以使用关键字而非位置来指定函数的参数。譬如def func(a,b=5,c=6)调用函数时可以用func(3,7) func(25,c=24)  func(c=50,a=100)

可变参数:
有时你可能想定义的函数里面参数数量可变的,这可以通过使用星号来实现。
    当我们声明一个诸如*param的星号参数时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成为一个称作"param"的元组(Tuple)。
    类似地,当我们声明一个诸如**param的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为param的字典(Dictionary)
    return 语句可用于中断函数。也可以选择在中断函数时返回一个值。这里的值可以是一串字符串也可以是类似整形数字那样的值。
    得注意到如果return语句没有搭配任何一个值则代表着 返回None。None在Python中一个特殊的类型,代表着虚无。举个例子,它用于指示一个变量没有值,如果有值则它的值便是None。每个函数都在其末尾隐含了一句return None,除非你自己写了return语句。

在找最大数这一功能时,有一个名为max的内置函数。所以可以尽可能地使用这一内置函数。

DocString 文档字符串 

DocString 能帮你更好的记录程序并让你更加易于理解。更棒的是,当程序实际运行时,我们甚至可以通过一个函数来获取文档。
print(print_max.__doc__ )打印函数parint_max内的文档。

文档字符串(一般用三引号标记)也适用于模块(Modules)与类(Class)。
在所有重要功能的所有文档字符串中,文档字符串一串多行字符串,第一行以某一大写字母开始,以句号结束。第二行为空行,后跟的第三行开始是任何详细的解释说明。
譬如:
def print_max(x, y):
”’Prints the maximum of two numbers.打印两个数值中的最大数。
The two values must be integers.这两个数都应该是整数”’

模块:
一个模块可以被其他程序导入并运用其功能。
    import sys 运行这一语句时,它会开始寻找sys模块,由于sys是内置模块,所以Python知道应该到那找它。如果是用python编写的模块,那么Python解释器将从它的sys.path变量所提供的目录中进行搜索。如果找到了对应的模块,怎该模块中的语句将在开始运行,并能够为你所使用。初始化工作只需要我们第一次导入模块时完成。

导入一个模块时件代价很高的事情,所以Python引入了一些技巧使其能够更快的完成。其中一种方式是创建字节码编译的文件。以.pyc为其扩展名,是将Python转换成中间形式的文件。.pyc文件在洗一次从其他不同的程序导入模块时非常有用,它将更快速,因为导入模块时所需要的一部分处理工作已完成了。同时,这些按字节码编译的文件是独立于运行平台的。
这些.pyc文件通常会创建在与对应的.py文件所处的目录中。如果Python没有相对应的权限对这一目录进行写入文件的操作,那么.pyc文件将不会被创建。

尽量避免使用from..import语句和from ...import *(这个将导入公共名称),而去使用import语句。这是为了避免在你的程序中出现名称冲突,同时也是为了使得程序更加易读。

模块的_name_
每个模块都有一个名称,模块中的语句可以找到它们所处的模块的名称。这对于确定模块时独立运行的还是被导入进来运行的这一特定目的来说大为有用。当模块第一次被导入时,其所包含的代码将被执行,我们通过这特性来使模块以不同的方式运行,这取决于它是为自己所用还是从其他的模块中导入而来。用__name__实现。

每一个Python模块都定义了它的__name__属性。如果__main__属性相同则代表这一模块是由用户独立运行的,因此我们可以采取适当的行动。

当我们在其他python程序中使用某一模块时,要记住该模块应该放置在我们即将导入这一模块的程序相同目录下,或者是放置在sys.path所列出的同一目录下。

访问另一模块中的成员时,可以通过点符来访问模块中的成员。

dir函数
内置的dir()函数能返回由对象定义的名称列表。如果这一对象是一个模块,则该列表会包括函数内所定义的函数、类与变量。

del这一语句用于删除一个变量或名称。当使用del a时表示便不能访问变量a—它如同从未存在过一般。
var()函数也可以返回给你这些值得属性,但是只是可能,他并不能只对所类都能正常工作。
包:
变量通常位于函数内部,函数与全局变量通常位于模块内部,如果想要组织这些模块的话,则需要用到包了。
包是指一个包含模块与一个特殊的__init__.py文件的文件夹,后者向Python表明这一文件夹是特别的,因为其包含了Python模块。

函数是程序中的可重用部分,模块时一种可重用程序,包是组织模块的另一种层次结构。Python所附带的标准库就是这样一组有关包与模块的例子。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值