分类 Python 下的文章

Python 3.7.3 rc1 发布了,这是 Python 3.7 第三个维护版本的候选发布预览版,是 Python 的最新功能版本,目前已经提供用于测试。此候选版本旨在测试 3.7.3 中的新安全性和 bug 修复,强烈建议用户尽快测试项目并向 bugs.python.org 报告问题。要注意,这是预览版本,因此不建议在生产环境中使用它。

Python 3.7 系列是 Python 语言的最新主要版本,包含许多新功能和优化,主要新特性包括:
PEP 539,用于 thread-local 存储的新 C API
PEP 545,Python 文档翻译
新的文档翻译:Japanese、French 与 Korean
PEP 552,确定性 PYC 文件
PEP 553,内建 breakpoint ()
PEP 557,Data Classes
PEP 560,键入模块和泛型类型核心支持
PEP 562,自定义访问模块属性
PEP 563,延迟评注注解
PEP 564,纳秒级时间支持
PEP 565,改进 DeprecationWarning 处理
PEP 567,上下文变量
避免使用 ASCII 作为默认文本编码
dict 对象的插入顺序保存性质成为 Python 语言官方规范
许多地方的性能显着提升

直达链接:https://www.python.org/downloads/release/python-373rc1/

random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。

示例:

import random

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in range(3):
    slice = random.sample(list, 5)  # 从list中随机获取5个元素,作为一个片断返回
    print(slice)
    print(list, '\n')  # 原有序列并没有改变

输出结果如下,发现每一次的random.sample函数返回的5个元素不同
05203-hhta0nfkzsw.png

Python随机概率函数用法

numpy.random.choice(a, size=None, replace=True, p=None)
第一个参数是值或数组 第二个是返回个数 第三个是值选取概率
参数的含义分别是,从a中以概率随机选择size数量的元素。a可以是整数或数组等
replace代表选择的值是否放回去, False的话,那么出来的数都不一样,True是放回去,出现的值有可能是重复的

下方是从-1 和 1 中随机选择一个,1出现的概率是0.6 -1出现的概率是0.4

import numpy as np
print np.random.choice([1,-1], 1,replace=True, p=[0.6, 0.4]) 

选取3个随机整数

np.random.choice(5, 3) 
array([0, 3, 4])

按概率选择3个整数

np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) 
array([3, 3, 0])

更多详情参见:https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.choice.html

最终结论:引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明,特别地,列表、字典等如果只是修改其中元素的值,可以直接使用全局变量,不需要global声明。

#! /usr/bin/python

a = 1
b = [2, 3]
c = 1

def func():
    a = 2
    print ("in func a:", a)
    b[0] = 1
    print ("in func b:", b)
    global c
    c = 3
    print ("in func c:", c)

if __name__ == '__main__':
    print ("before func a:", a)
    print ("before func b:", b)
    print ("before func c:", c)
    func()
    print ("after func a:", a)
    print ("after func b:", b)
    print ("after func c:", c)
--------------------- 

打印结果:

82249-sual819sjz.png

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。