python的学习之路

if name ==‘main

一个 Python 源码文件除了可以被直接运行外,还可以作为模块(也就是库)被导入。不管是导入还是直接运行,最顶层的代码都会被运行(Python 用缩进来区分代码层次)。而实际上在导入的时候,有一部分代码我们是不希望被运行的。

PI = 3.14

def main():
    print "PI:", PI

main()

我们在这个文件里边定义了一些常量,然后又写了一个 main 函数来输出定义的常量,最后运行 main 函数就相当于对定义做一遍人工检查,看看值设置的都对不对。然后我们直接执行该文件(python const.py),输出:

PI: 3.14

现在,我们有一个 area.py 文件,用于计算圆的面积,该文件里边需要用到 const.py 文件中的 PI 变量,那么我们从 const.py 中把 PI 变量导入到 area.py 中:

from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print "round area: ", calc_round_area(2)

main()

运行 area.py,输出结果:

PI: 3.14
round area:  12.56

可以看到,const 中的 main 函数也被运行了,实际上我们是不希望它被运行,提供 main 也只是为了对常量定义进行下测试。这时,if name == ‘main’ 就派上了用场。把 const.py 改一下:

PI = 3.14

def main():
    print "PI:", PI

if __name__ == "__main__":
    main()

然后再运行 area.py,输出如下:

round area:  12.56

再运行下 const.py,输出如下:

PI: 3.14

lambda

def multipliers():
    return [lambda x: i*x for i in range(4)]
print [m(2) for m in multipliers()]
输出:
[6, 6, 6, 6]

list

list = ['a','b','c','d','e']
print list[10:]
输出:
[]

python 中/和//的区别

python 2.7
def div1(x, y):
    print "%s/%s = %s" % (x,y,x/y)
def div2(x, y):
    print "%s//%s = %s" % (x,y,x//y)
div1(5, 2)
div1(5., 2)
div2(5, 2)
div2(5., 2.)
输出:
5/2 = 2
5.0/2 = 2.5
5//2 = 2
5.0//2.0 = 2.0
#######################
aaa=11
b = 11/2
c = 11//2
d = 11./2.
e = 11./2
f = 11.//2.
print(aaa)
print(b)
print(c)
print(d)
print(e)
print(f)
输出:
11
5
5
5.5
5.5
5.0
python3

def div1(x, y):
    print ("%s/%s = %s" % (x,y,x/y))
def div2(x, y):
    print ("%s//%s = %s" % (x,y,x//y))
div1(5, 2)
div1(5., 2)
div2(5, 2)
div2(5., 2.)
输出:
5/2 = 2.5
5.0/2 = 2.5
5//2 = 2
5.0//2.0 = 2.0

aaa=11
b = 11/2
c = 11//2
d = 11./2.
e = 11.//2.
print(aaa)
print(b)
print(c)
print(d)
print(e)
输出:
11
5.5
5
5.5
5.0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知行SUN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值