从零开始的 python

发布时间 2023-08-16 15:46:57作者: hewo

从零开始的 python

引用官方库函数/常量之类的
from __ import __
自定义函数
def ___():
	
	
	return 
	

在交互式环境下,要多打一行空行

注:在 def 的参数可以直接

def exp(n,d=10)

如果执行 exp(23333) ,d 就默认为 10

如果是 exp(2333,15) ,d 仍然为 15

编译命令
python -i

表示执行交互式,会先运行一次程序,然后开始交互

python -m doctest xxx.py

表示文档差错(似乎是一种还可以的Debug方式?)

python -m doctest -v ex.py

详细版

使用方式为以 >>> 在注释中打出 交互命令 和 期望结果 ,然后如果有不匹配就会报错。

def divide_exact(n,d):
    """
    return sth about deivde
    >>> q, r= divide_exact(2013,10)
    >>> q
    201
    >>> r
    2
    """
    return n//d, n%d
q, r= divide_exact(2013,10)
#print(q,r)
条件语句
def abs(a):
    if a < 0:
        return -a
    elif a > 0:
        return a
   

else if = elif (仍然有 else 的用法,但似乎不能用 else if?)

PS: 实参会在计算后再传递

python 有从左到右计算的特性(似乎叫短路?)

eg:

return x>0 and sqrt(x)>10

如果给一个 x<0 ,那么也不会报错,以为在 x>0 时就已经返回 false 了。

循环
while i<3:
	i = i+1
	total = total + i
assert

就是断言

assert conditon,message

若 condition 为假,就print message

def 嵌套
def make_adder(n):
    def adder (k):
        return k+n
    return adder

这个挺有意思的,return 了一个函数,相当于你可以为直接定义一个函数,like:

add_three = make_adder(3)

就喜提 add_three()

PS:

python 的函数似乎没有前后声明的要求,比如:

def f(x,y):
    return g(x)

def g(a):
    return a+233

result = f(1,2)

print(result)

这个代码就可以正常运行

嵌套还可以这么玩:

def compose1(f ,g):
    def h(x):
        return f(g(x))
    return h

def f1 (x):
    return x-1

def p1 (x):
    return x*2

us = compose1(f1 , p1)

a=us(3)

print(a)

有意思捏

lambda
S = lambda x: x*x

可以用来定义简易函数

这样的 S 就是 S(x) 了

还可以

map(lambda x: x*x,[y for y in range(10)])

简洁