Lesson 1-2
1.5 模块
模块可视为扩展,通过将其导入可以扩展python的功能。python中自带有一组模块,也称为“标准库”。
1.5.1 模块的导入:import + 模块名称
• 使用关键字import导入模块
• import之后跟模块名称,可一次导入多个模块,多个模块名称之间使用逗号隔开
• 使用“模块名称.函数名称”的方式来调用该模块中的函数
>>> import random,math
>>> print(random.randint(1,10))
3
>>> print(math.floor(3.7))
3
>>>
1.5.2 模块的导入:from 模块名称 import *
• 使用关键字from,import和 * 号
• 直接使用“函数名称”的方式来调用该模块中的函数
• 使用该方式虽然简化了调用方式,但是代码可读性变差,且必须确认没有同名函数
>>> from math import *
>>> ceil(33.3)
34
>>> sqrt(25)
5.0
>>>
1.5.3 模块的导入:from 模块名称 import 函数名称
• 使用1.5.2导入方式模块中的所有函数都可以调用,而该方式区别在于指定导入模块中的函数名称,只可以调用该函数,模块中的其它函数不可调用,强行调用则会出现‘“函数未定义”的报错
• 该方式适用于明确只使用该模块中的指定函数
>>> from math import ceil
>>> ceil(33.3)
34
>>> sqrt(25)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sqrt' is not defined
>>>
1.5.4 模块的导入:使用 as 关键字
模块导入时可以通过使用 as 关键字来改变相应的引用对象名字,适用于模块名称或者函数名称过长过复杂时的简化。
• 例如使用 import random as r ,则在后续的调用中可用“r”代替“random” 。
>>> import random as r
>>> r.randint(1,10)
1
>>>
• 例如使用 from random import randint as r ,则在后续的调用中可用“r”代替“randint” 。
>>> from random import randint as r
>>> r(1,10)
5
>>>
1.6 注释
--- 在python中,使用井号(#)来进行注释,# 到行尾的内容将被当成注释
--- 特殊的例子是脚本的第一行字符序列:#!+ python的绝对路径 + python可执行程序名 ,例如:#!/usr/bin/python3.7 python3
--- 可使用一对单三引号(‘’‘)或者一对双三引号(“”“)进行多行(段落)注释
--- 注释必须言而有物,无用而重复的注释还不如没有
1.7 简单的字符串
1.7.1 长字符串
--- 常规字符串也可以跨越多行,只要在行尾加上反斜杠,python会自动进行拼接
>>> "Hello \
... world!"
'Hello world!'
>>> print("Hello \
... world!")
Hello world!
>>>
--- 使用三单引号或三双引号表示很长的多行字符串,python不会自动进行拼接
>>> print("""Hello
... world
... !""")
Hello
world
!
>>>
1.7.2 原始字符串
--- 原始字符串使用前缀 r 表示,r 后的字符串可使用单引号、双引号、三引号括起来,但该字符串不能以单个反斜杠结尾
>>> print("Hello \nworld!")
Hello
world!
>>> print(r"Hello \nworld!")
Hello \nworld!
>>> print(r"Hello \nworld!\")
File "<stdin>", line 1
print(r"Hello \nworld!\")
^
SyntaxError: EOL while scanning string literal
>>>
1.8 简单的字符编码
--- 内存和磁盘中所有对象都是以二进制表示,python提供不可变bytes和可变bytearray两种类型来对接,bytes类型可直接创建bytes对象。
>>> "Hello world!"
'Hello world!'
>>> b"Hello world!"
b'Hello world!'
>>> type('Hello world!')
<class 'str'>
>>> type(b'Hello world!')
<class 'bytes'>
>>>
--- 将文本写到内存和磁盘文件中,需要进行编码,编码使用encode函数;将文本从内存和磁盘文件中读出,需要进行解码,解码使用decode函数。
--- 使用ASCII、UTF-8、UTF-32编码将字符串转换为bytes
>>> "Hello world!".encode("ASCII")
b'Hello world!'
>>> "Hello world!".encode("UTF-8")
b'Hello world!'
>>> "Hello world!".encode("UTF-32")
b'\xff\xfe\x00\x00H\x00\x00\x00e\x00\x00\x00l\x00\x00\x00l\x00\x00\x00o\x00\x00\x00 \x00\x00\x00w\x00\x00\x00o\x00\x00\x00r\x00\x00\x00l\x00\x00\x00d\x00\x00\x00!\x00\x00\x00'
>>>
--- 编码长度
>>> len("Hello world!".encode("ASCII"))
12
>>> len("Hello world!".encode("UTF-8"))
12
>>> len("Hello world!".encode("UTF-32"))
52
>>>
--- 最好使用UTF-8编码,UTF-8也是默认使用的编码。
Lesson 1-2的更多相关文章
- Lesson 18 He often does this!
Text After I had had lunch at a village pub, I looked for my bag. I had left it on a chair beside th ...
- Lesson: The "Hello World!" Application
Lesson: The "Hello World!" Application The sections listed below provide detailed instruct ...
- [小北De编程手记] : Lesson 06 玩转 xUnit.Net 之 定义自己的FactAttribute
xUnit.Net本身提供了标记测试方法的标签Fact和Theory.在前面的文章<Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动>中,也对它 ...
- [小北De编程手记] : Lesson 04 玩转 xUnit.Net 之 Fixture(下)
上一篇文章<[小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)>向大家介绍了xUnit.Net 共享数据的方式.Test Case的构造函数 ...
- [小北De编程手记] : Lesson 02 玩转 xUnit.Net 之 基本UnitTest & 数据驱动
关于<玩转 xUnit.Net>系列文章,我想跟大家分享的不是简单的运行一下测试用例或是介绍一下标签怎么使用(这样的文章网上很多).上一篇<Lesson 01 玩转 xUnit.Ne ...
- [小北De编程手记] : Lesson 01 玩转 xUnit.Net 之 概述
谈到单元测试,任何一个开发或是测试人员都不会觉得陌生.我想大多数的同学也都是接触过各种单元测试框架.关于单元测试的重要性,应该不会有太多的质疑.这个系列,我向大家介绍一下xUnit.Net的使用.就让 ...
- [小北De编程手记] : Lesson 08 - Selenium For C# 之 PageFactory & 团队构建
本文想跟大家分享的是Selenium对PageObject模式的支持和自动化测试团队的构建.<Selenium For C#>系列的文章写到这里已经接近尾声了,如果之前的文章你是一篇篇的读 ...
- [小北De编程手记] : Lesson 07 - Selenium For C# 之 窗口处理
在实际的自动化测试过程中,我们会遇见许多需要对窗口进行处理的情况.比如,点击删除某条信息的时候系统会显示一个Alert框.或者点击某个超链接时会在浏览器中打开一个新的页面.这一篇,来和大家分享一下Se ...
- [小北De编程手记] : Lesson 06 - Selenium For C# 之 流程控制
无论你是用哪一种自动化测试的驱动框架,当我们构建一个复杂应用程序的自动化测试的时候.都希望构建一个测试流程稳定,维护成本较低的自动化测试.但是,现实往往没有理想丰满.而这一篇,我会为大家讲解我们在使用 ...
- [小北De编程手记] : Lesson 01 - Selenium For C# 之 环境搭建
在我看来一个自动化测试平台的构建,是一种很好的了解开发语言,单元测试框架,自动化测试驱动,设计模式等等等的途径.因此,在下选择了自动化测试的这个话题来和大家分享一下本人关于软件开发和自动化测试的认识. ...
随机推荐
- React Native & app demos
React Native & app demos https://github.com/ReactNativeNews/React-Native-Apps https://github.com ...
- mapper.xml 的配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- CF51C Three Base Stations
https://codeforces.com/problemset/problem/51/C 题目 The New Vasjuki village is stretched along the mot ...
- [洛谷P1419] 寻找段落
一道单调队列的好题 传送门:>Here< 题意:求一个连续子段,其长度在\([S,T]\)之间,使其平均值最大.保留三位小数 解题思路 考虑二分答案,转化为判定问题.设当前二分到\(k\) ...
- 【MyBatis】Mapper XML 文件
Mapper XML文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立 ...
- 浅析redis缓存 在spring中的配置 及其简单的使用
一:如果你需要在你的本地项目中配置redis.那么你首先得需要在你的本地安装redis 参考链接[http://www.runoob.com/redis/redis-install.html] 下载r ...
- 如何查看Linux命令的源代码
首先要在系统设置-->软件和更新-->Ubuntu软件中勾选源代码选项,否则在下载source时会报如下错: E:您必须在sources.list中指定源代码(deb-src)URI 然后 ...
- table的 noWrap 属性不换行
nowrap是什么意思? HTML中td元素的nowrap属性表示禁止单元格中的文字自动换行. 但使用时要注意的是,td元素noWrap属性的行为与td元素的width属性有关. td元素中nowra ...
- mysql 在visual studio中的配置
视图-->其他窗口-->服务器资源管理器-->数据连接-->右键添加连接 servername:localhost username:root password:123456 ...
- docke 基本安装使用
特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为 MB 一般为 GB 性能 接近原生 弱 系统支持量 单机支持上千个容器 一般几十个 容器三大基本概念 镜像 image 容器 containe ...