Python学习笔记(2018.02.03-06)

本文介绍了Python中的多种实用技巧,包括使用random模块生成随机数、处理时间与日期、序列操作及利用pickle进行对象持久化等。同时探讨了函数定义与调用的细节,并通过实例展示了lambda表达式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Crossin的编程教室今天看完了,最后几节课看的比较乱,接下来开始迷茫了,感觉学的很认真了,可是想想之前不知道学了点什么呢?又想不出个所以然来,接下来,明天不知道该怎么开始了?

random.random()

生成一个0到1之间的随机浮点数,包括0但不包括1,也就是[0.0, 1.0)。


random.uniform(a, b)

生成a、b之间的随机浮点数。不过与randint不同的是,a、b无需是整数,也不用考虑大小


random.choice(seq)

从序列中随机选取一个元素。seq需要是一个序列,比如list、元组、字符串。


random.randrange(start, stop, step)

生成一个从start到stop(不包括stop),间隔为step的一个随机数。start、stop、step都要为整数,且start<stop。


random.sample(population, k)

从population序列中,随机获取k个元素,生成一个新序列。sample不改变原来序列。


random.shuffle(x)

把序列x中的元素顺序打乱。shuffle直接改变原有的序列。




在计算机领域有一个特殊的时间,叫做epoch,它表示的时间是1970-01-01 00:00:00 UTC。

Python中time模块的一个方法

time.time()

返回的就是从epoch到当前的秒数(不考虑闰秒)。这个值被称为unix时间戳。


time.sleep(secs)


它可以让程序暂停secs秒。例如:


import time

print 1

time.sleep(3)

print 2


pickle。它可以把任何 Python 对象存储在文件中,再把它原样取出来

list_1 = [1, 2, 3, 5, 8, 13, 22]

list_2 = [i for i in list_1 if i % 2 == 0]

print list_2

提取偶数组成新列表

当你没有提供足够的参数时,会用默认值作为参数的值。

例如:

定义

def func(arg1=1, arg2=2, arg3=3):

print arg1, arg2, arg3

调用

func(2, 3, 4)

func(5, 6)

func(7)

输出为

2 3 4

5 6 3

7 2 3


没有指定参数名的参数必须在所有指定参数名的参数前面,且参数不能重复。

调用都是错误的:

func(arg1=13, 14)

func(15, arg1=16)


 func(*args) 方式是把参数作为 tuple 传入函数内部。而 func(**kargs) 则是把参数以键值对字典的形式传入。字典是无序的

带有默认值的形参(arg=)须在无默认值的形参(arg)之后;

元组参数(*args)须在带有默认值的形参(arg=)之后;

字典参数(**kargs)须在元组参数(*args)之后

而在函数被调用时,参数的传递过程为:

1.按顺序把无指定参数的实参赋值给形参;

2.把指定参数名称(arg=v)的实参赋值给对应的形参;

3.将多余的无指定参数的实参打包成一个 tuple 传递给元组参数(*args);

4.将多余的指定参数名的实参打包成一个 dict 传递给字典参数(**kargs)


lambda 参数列表: 表达式

sum = lambda a, b, c: a + b + c

print sum(1, 2, 3)


“全局变量”  给变量名前加上 global 关键字,这样其作用域就不再局限在函数块中,而是全局的作用域。

from functools import reduce

lst = xrange(1, 101)

def add(x, y):

return x + y

print reduce(add, lst)

如果把刚才的 lst 换成 [1,2,3,4,5],那 reduce(add, lst) 就相当于 ((((1+2)+3)+4)+5)

reduce((lambda x, y: x + y), xrange(1, 101))


lst_1 = (1,2,3,4,5,6)
lst_2 = list(map(lambda x: x * 2, lst_1))    #Python2中多了个list()
print (lst_2)

python 里有一个 thread 模块,其中提供了一个函数:


start_new_thread(function, args[, kwargs])


function 是开发者定义的线程函数,

args 是传递给线程函数的参数,必须是tuple类型,

kwargs 是可选参数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值