3.17

3.17

modulesAndPackages

1.什么是模块,什么是包

一个py文件就是一个模块,文件名就是模块名(如果一个模块想要被其他模块使用,模块名必须是标识符并且不是关键字)
一个包含__init__.py文件的文件夹就是一个包

2.使用其他中的内容

一个模块可以使用另外一个模块中所有的全局变量,但是使用前需要先导入模块

导入模块的语法:
import 模块名 - 导入指定模块,导入后通过’模块名.x’去使用模块中所有的全局变量
from 模块名 import 变量1, 变量2, 变量3, … - 导入指定模块,导入后可以直接使用import后面所有的变量
import 模块名 as 新模块名 - 导入模块并且对模块进行重命名,使用数据时候采用:‘新模块名.’
from 模块名 import 变量1 as 新变量1, 变量2, 变量3, …
from 模块名 import * - 导入模块中所有的全局变量

导入模块的原理:
不管是通过import还是from-import,导入模块的时候都会先进入指定模块,将模块中的代码全部执行

选择性的让模块中的代码在被导入的时候执行和不执行:
if _name_ == ‘__main__’:
pass
这个if语句外面的代码在被导入的时候会执行,里面的代码被导入的时候不会被执行

use of packages

1.导入包中的内容

import 包名 - 只有在自定义完__init__.py后才有用
import 包名.模块名 - 导入包中指定的模块, 使用模块中的内容的格式: 包名.模块名.x

from 包名 import 模块名1, 模块名2, …
from 包名.模块 import 变量1, 变量2,…

注意:import在导入模块或者包的时候,会先检查这个模块或者包之前是否已经导入过,如果已经导入过了不再重复导入

2._init_.py文件的作用

当导入包或者包中的内容的时候,会自动执行包中的_init_.py文件

systemModules

1.好玩儿的模块:turtle、smtplib;email 、…
2.工作涉及到的模块:

  1. os模块 - 提供文件和文件夹操作的相关函数
    os.getcwdb() - 返回当前工作目录
    os.listdir(path) - 返回指定目录中所有的文件或者文件夹的名字
  2. time和datetime - 提供操作时间相关的函数
  3. random - 提供随机相关函数
  4. hashlib - 提供hash加密相关函数(hash摘要)
# 3. random模块
import random

# 1) random.randint(m, n)  - 产生m到n的随机整数
print(random.randint(10, 20))

# 2) random.random()    -   产生 0 ~ 1的随机小数
print(random.random())      # 0 ~ 1
print(random.random() * 100)    # 0 ~ 100
print(random.random() * 50 + 50)        # 50 ~ 100
print(random.random() * 5 + 15)         # 15 ~ 20

# 3) random.shuffle(列表)     -    将列表中元素的顺序随机打乱(洗牌)
nums = [23, 34, 'abc', True]
random.shuffle(nums)
print(nums)

# 4)
# random.choice(序列)     -   从序列中随机获取一个元素
# random.choices(序列, k=N)   -   从序列中随机获取N个元素

result = random.choice('abc3lo901')
print(result)

nums = [23, 34, 'abc', 20, 3, 4]
result = random.choices(nums, k=2)
print(result)

module of time

1.time模块

  1. 什么是时间戳
    时间戳:用一个时间到1970年1月1日0时0分0秒(格林威治时间)的时间差来表示一个时间, 单位是秒 (用时间差来表示时间)
    时间戳的优点:a.存储时间戳比存储字符串时间消耗的内存要小很多 b. 加密和解密更容易
import time
# 1) time()     -       获取当前时间(时间戳)
t1 = time.time()
print(t1)       # 1615966804.79146  (4字节~5字节)
                # '2021-3-17 03:50:00'   (18字节)


# 2)
# time.localtime()      -       获取当前本地时间(结构体时间)
# time.localtime(时间戳)   -       将时间戳对应的时间转换成结构体时间
t2 = time.localtime()
print(t2)

t3 = time.localtime(0)
print(t3)

t4 = time.localtime(1615966804.79146)
print(t4)
print(t4.tm_year, t4.tm_mon)


# 3)time.sleep(时间)  -   让程序睡眠指定时间,单位秒
print('=======')
time.sleep(1)
print('+++++++')

2.datetime - time、datetime、date

from datetime import time, datetime, date, timedelta

# 1) 获取当前时间
t5 = datetime.now()
print(t5)     # 2021-03-17 16:36:54.297076
print(t5.year, t5.month, t5.hour)

t6 = date.today()
print(t6)       # 2021-03-17

# 2) 时间的加减操作
print('当前时间:', datetime.now())
# 10天前:
print('10天前:', t5 - timedelta(days=10))    # 2021-03-07 16:42:01.363135
# 20天前
print('20天前', t5 - timedelta(days=20))    # 2021-02-25 16:42:36.397193

print('1个小时前:', t5 - timedelta(hours=1))
print('2个小时后:', t5 + timedelta(hours=2))
print('47个小时后:', t5 + timedelta(hours=47))
print('2小时30分后:', t5 + timedelta(hours=2, minutes=30))

t6 = t5 - timedelta(days=1, hours=1)
print(t6, t6.year, t6.month, t6.day, t6.hour, t6.minute, t6.second)

hash摘要

1.hash加密算法 - md5、sha相关

hash加密的特点:
a. 不可逆:无法通过hash算法加密得到密文获取到原数据
b. 相同的数据通过相同的算法得到摘要(密文)是一样的
c. 不同长度的数据通过相同的算法得到的摘要(密文)的长度一样

2.生成数据摘要(加密)

  1. 根据算法创建hash对象: hashlib.算法名()

常用算法:md5、shaX

import hashlib
hash_obj = hashlib.md5()

2)添加原文

hash对象.update(需要加密的数据)

注意:加密数据的类型必须bytes(相当于python中二进制数据)

hash_obj.update('123456'.encode())

3)获取摘要(获取密文)

hash对象.hexdigest()

result = hash_obj.hexdigest()
print(result)    # e10adc3949ba59abbe56e057f20f883e
libsvm-3.17是一个机器学习库,用于支持向量机(Support Vector Machines)的训练和预测。你可以通过在libsvm的网站上下载libsvm-3.12.zip文件,并将其解压到任意目录下,最好是放在MATLAB工具箱中,比如D:\program files (x86)\MATLAB\R2014a\toolbox\libsvm-3.22下。另外,你还需要安装相关软件,包括python3.2、libsvm3.17和gnuplot,并将其分别安装在指定的目录下,例如python3.2安装在d:/Python32,libsvm3.17安装在D:\libsvm-3.17,gnuplot安装在D:\gnuplot。 要在Windows上使用libsvm-3.17,你需要在命令窗口中输入"make"命令。虽然可能会出现找不到svmtrain.exp和svmpredict.exp的提示,但只要在libsvm/matlab目录下生成了四个文件(libsvmread.mexw32、libsvmwrite.mexw32、svmtrain.mexw32和svmpredict.mexw32),你就可以将这四个文件复制到..MATLAB\R2014a\toolbox\libsvm-3.22\windows目录下,替换原来的文件。 总结起来,libsvm-3.17是一个机器学习库,用于支持向量机的训练和预测。你需要下载并解压libsvm-3.12.zip文件,安装相关软件,并复制生成的四个文件到指定目录中,以便在MATLAB中使用libsvm-3.17。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MATLAB R2014a 装 libsvm-3.17](https://blog.csdn.net/abc1942227359/article/details/77989988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [python3.2+libsvm3.17的配置](https://blog.csdn.net/laoyaotask/article/details/22654989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值