python基础(二)
来源:互联网 发布:太阳队布克数据 编辑:程序博客网 时间:2024/05/21 10:32
这里主要讲Python的语法,控制语句,函数,模块和包。
语法基础
控制语句
判断语句
if
if...else
if...elif...else
x = 1if x == 1: print('x=1')y = 2if y == 2: print('y==2')else: print('y!=2')z = 3if z == 3: print('z=3')elif z == 4: print('z=4')else: print('z!=3 and z!=4')
循环语句
while
for
break, continue
x = 1whlie x <= 100: x += 1print(x)z = 0for i in range(10): z += iprint(z)
注:range(start=0, stop[, step])返回一个range对象,包含start,不包含stop
break用于跳出当前的循环,continue用于跳出此次循环,执行下一次循环。
函数
def fun(): print('this is a function')def add(a, b): return a + b
lambda函数
:定义:fun = lambda val1, val2 : expression,调用:fun(val1, val2),返回expression Generator函数
:
#定义Generator函数def fun(n): for i in range(n): yield i#使用for循环输出for i in fun(3): print(i)#使用next()输出r = fun(3)print(r.next)print(r.next)print(r.next)
Module(模块)
一个模块就是一个py文件,模块里面可以有函数,类,变量。
经常会看到这样的写法
if __name__ == '__main__': do something
这里就涉及到模块的__name__
属性了。
不如有两个文件:a.py
和b.py
。如果b.py
里`写入如下内容:
import aprint(a.__name__)print(__name__)##输出结果a__main__
也就是说,当运行一个py文件的时候,此文件的__name__
就是__main__
,当一个py文件被导入的时候,被导入的py文件的__name__
就是模块名。
包
一个包就是一个文件夹,里面至少含有__init__.py
文件,此文件内容可以为空。包里面可以含有包和模块
当一个包被调用的时候,首先执行里面的__init__.py
文件。
关于下划线
单下划线开头的模块
使用一个 C 编写的扩展库有时会用下划线开头命名,然后使用一个去掉下划线的 Python 模块进行包装。如 struct 这个模块实际上是 C 模块 _struct 的一个 Python 包装单下划线开头的变量和函数
这个被常用于模块中,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入。不过值得注意的是,如果使用 import a_module 这样导入模块,仍然可以用 a_module._some_var 这样的形式访问到这样的对象。单下划线结尾的变量
这在解析时并没有特别的含义,但通常用于和 Python 关键词区分开来,比如如果我们需要一个变量叫做 class,但 class 是 Python 的关键词,就可以以单下划线结尾写作 class_。双下划线开头结尾
这是一些 Python 的“魔术”对象,如类成员的__init__
、__del__
、__add__
、__getitem__
等,以及全局的__file__
、__name__
等。 Python 官方推荐永远不要将这样的命名方式应用于自己的变量或函数,而是按照文档说明来使用。双下划线开头
Python 的类成员中使用表示名字改编 (Name Mangling),即如果有一Test
类里有一成员__x
,那么dir(Test)
时会看到_Test__x
而非__x
。这是为了避免该成员的名称与子类中的名称冲突。但要注意这要求该名称末尾没有下划线。此时通过Test.__x
是无法访问的,可以通过Test._Test__x
访问总结
_xxx
不能用’from module import *’导入__xxx__
系统定义名字__xxx
类中的私有变量名
可以参照理解Python的双下划线命名-CSDN ,Python 的类的下划线命名有什么不同?-知乎
- python基础(二)
- python基础(二)
- Python基础(二)
- python 基础(二)
- Python基础(二)
- Python基础(二)
- python基础(二)
- python基础(二)
- Python基础(二)
- Python入门(二,基础)
- Python基础语法(二)
- Python 基础语法(二)
- Python 基础回顾(二)
- Python基础习题(二)
- Python入门基础(二)
- Python基础学习(二)
- Python入门基础(二)
- python基础(二)list
- 项目中 List 查询结果缓存说明
- 目前认为最完美的单例
- Android 集成facebook 登录和分享
- 火狐浏览器 去顶部的bug
- AFNetworking 3.0 源码解读(五)之 AFURLSessionManager
- python基础(二)
- scala中的trait
- SQL 约束 (Constraints)
- iOS远程真机之WebDriverAgent 天坑记
- MAC El Capitan以上版本安装cx_Oracle
- Ext.Ajax.request 中success failure
- 轻量级motan RPC+consul注册服务实现详细DEMO
- 读书笔记:《特劳特营销十要》
- 1YDB后台计划任务无法生成的解决方法