热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

常用的Python模块

目录1、使用copy模块来复制2、keyword模块记录了所有的关键字3、用random模块获得随机数4、用sys模块来控制Shell程序5、用time模块来得到时间6、

目录

 

1、使用copy模块来复制

2、keyword模块记录了所有的关键字

3、用random模块获得随机数

4、用sys模块来控制Shell程序

5、用time模块来得到时间

6、用pickle模块来保存信息



1、使用copy模块来复制

>>> class Animal:
             def _init_(self, species, number_of_legs, color):
                    self.species = species
                    self.number_of_legs = number_of_legs
                    self.color = color

>>> harry = Animal()
>>> harry._init_('hippogriff', 6, 'pink')
>>> import copy
>>> harriet = copy.copy(harry)
>>> print(harry.species)
hippogriff
>>> print(harriet.species)
hippogriff


a、浅拷贝

my_animals[0].spcies = 'ghoul'

print(my_animals[0].species)

ghoul

print(more_animals[0].species)

ghoul

物种都变了是因为copy实际上只做了“浅拷贝”,也就是说他不会拷贝我们要拷贝的对象中的对象。在这里,它拷贝了主对象list对象,但是并没有拷贝其中的每个对象。因此我们得到的是一个新列表,但其中的对象不是新的,列表more_animals中还是那三个同样的对象。

b、 深拷贝

more_animals = copy.deepcopy(my_animals)

myanimals[0].species = 'wyrm'

print(my_animals[0].species)

wyrm

print(more_animals[0].spcies)

ghoul

在copy模块中的另一个函数deepcopy,则会创建被拷贝对象中的所有对象是拷贝。当我们用deepcopy来复制my_animals时,我们会得到一个新列表,它的内容是所有对象的拷贝。这样做的结果是,对于原来列表中Animal对象的改动不会影响到新列表。

2、keyword模块记录了所有的关键字

Python自身所用到的那些单词被称为关键字,比如if,else等。

iskeyword函数返回一个字符串是否是Python关键字

变量kwlist包含所有Python关键字的列表。

>>> import keyword
>>> print(keyword.iskeyword('if'))
True
>>> print(keyword.iskeyword('ozwald'))
False
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3、用random模块获得随机数

a、randint函数在一个数字范围内随机挑选一个数字。

>>> print (random.randint(1,100))
60
>>> print(random.randint(100,1000))
102
>>> print(random.randint(1000,5000))
1536

猜数字游戏

>>> import random
>>> num = random.randint(1,100)
>>> while True:
    print('Guess a number between 1 and 100')
    guess = input()
    i = int(guess)
    if i == num:
        print('You guess right')
        break
    elif i         print('Try higher')
    elif i > num:
        print('Try lower')

b、用choice从列表中随机选取一个元素

>>> import random
>>> desserts = ['ice cream', 'pancakes', 'brownies', 'COOKIEs', 'candy']
>>> print(random.choice(desserts))
COOKIEs

c、用shuffle来给列表洗牌

>>> import random
>>> desseerts = ['ice cream', 'pancakes', 'brownies', 'COOKIEs', 'candy']
>>> random.shuffle(desserts)
>>> print(desserts)
['brownies', 'candy', 'pancakes', 'ice cream', 'COOKIEs']

shuffle函数用来给列表洗牌,把元素打乱。

4、用sys模块来控制Shell程序

a、用exit函数来退出shell程序

>>> import sys
>>> sys.exit()

b、从stdin对象读取

>>> import sys
>>> v = sys.stdin.readline()
He who laughs last thinks slowest
>>> print(v)
He who laughs last thinks slowest

c、用stdout对象来写入

>>> import sys
>>> sys.stdout.write('What does a fish say when it swims into a wall?Dam.')
What does a fish say when it swims into a wall?Dam.50

当write结束时,他返回他所写入的字符的个数。

5、用time模块来得到时间

>>> import time
>>> print(time.time())
1539761973.2906716

对time()的调用所返回的数字实际上是自1970年1月1日00:00:00AM以来的秒数。

def lots_of_numbers(max):

    t1 = time.time()

    for x in range(0, max):

        print(x)

    t2 = time.time()

print('it took %s seconds' %(t2-t1))

a、用asctime来转换日期

>>> import time
>>> print(time.asctime())
Wed Oct 17 16:34:40 2018

asctime以日期的元组为参数,并把它转换成更可读的形式。

>>> t = (2020, 2, 23, 10, 30, 48, 6, 0, 0)
>>> print(time.asctime(t))
Sun Feb 23 10:30:48 2020

b、用localtime来得到日期和时间

函数localtime把当前的日期和时间作为一个对象返回,其中的值大体与asctime的参数顺序一样。

>>> import time
>>> print(time.localtime())
time.struct_time(tm_year=2018, tm_mon=10, tm_mday=17, tm_hour=16, tm_min=39, tm_sec=32, tm_wday=2, tm_yday=290, tm_isdst=0)

 

>>> t = time.localtime()
>>> year = t[0]
>>> month = t[1]
>>> print(year)
2018

c、用sleep来休息

但你想推迟或者让你的程序慢下来时,可以用sleep函数。

>>> for x in range(1, 61):
    print(x)
    time.sleep(1)

6、用pickle模块来保存信息

>>> import pickle
>>> game_data = {'a':'1','b':'2','c':'3'}
>>> save_file = open('save.dat', 'wb')

>>>pickle.dump(game.data, save_file)

>>>save_file.close()

>>>load_file = open('save.dat', 'rb')

>>>loaded_game_data = pickle.load(load_file)

>>>load_file.close()

 

print(loaded_game_file)

{...}


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 很多时候在注册一些比较重要的帐号,或者使用一些比较重要的接口的时候,需要使用到随机字符串,为了方便,我们设计这个脚本需要注意 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
author-avatar
爱被结束_347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有