python基础(二)

这里主要讲Python的语法,控制语句,函数,模块和包。

语法基础

控制语句

判断语句

  • if
  • if...else
  • if...elif...else
x = 1
if x == 1:
    print('x=1')

y = 2
if y == 2:
    print('y==2')
else:
    print('y!=2')

z = 3
if z == 3:
    print('z=3')
elif z == 4:
    print('z=4')
else:
    print('z!=3 and z!=4')

循环语句

  • while
  • for
  • break, continue
x = 1
whlie x <= 100:
    x += 1
print(x)

z = 0
for i in range(10):
    z += i
print(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 funn):
     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.pyb.py。如果b.py里`写入如下内容:

import a

print(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 的类的下划线命名有什么不同?-知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值