# python-week01
**Repository Path**: l_shi_li/python-week01
## Basic Information
- **Project Name**: python-week01
- **Description**: No description available
- **Primary Language**: HTML
- **License**: MulanPSL-1.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
**1.标准库:Python 标准库非常庞大,所提供的组件涉及范围十分广泛,这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。**
**2.开源模块:开源模块为第三方模块,是广大python爱好者,开发者,为了实现某些功能封装的模块。**
**3.自定义模块:在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。**
**4.自定义模块:在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。 **
---
### sys --- 系统相关的参数和函数
1. sys.platform 本字符串是一个平台标识符。
2. sys.version 一个包含 Python 解释器版本号加编译版本号以及所用编译器等额外信息的字符串。
```
>>> import sys
>>> import sys #引入sys 模块
>>> sys.platform #用platform属性返回操作系统平台名称
'win32'
```
```
>>> print(sys.version) #获取Python解释程序的版本信息
3.9.0a3 (tags/v3.9.0a3:c33378d, Jan 25 2020, 10:12:02) [MSC v.1916 64 bit (AMD64)]
>>> #我的python版本为3.9
```
### os --- 多种操作系统接口
1. os.getcwd() 返回表示当前工作目录的字符串。
2. os.environ 一个表示字符串环境的 mapping (映射) 对象。
3. os.getenv(key, default=None) 如果存在,返回环境变量 key 的值,否则返回 default。
```
>>> import os #引入os 模块
>>> os.getcwd() #运用os中的getcwd属性,获取当前工作的目录,就是此py文件的文件夹
'E:\\新桌面\\Python作业\\09.21思考题'
>>>
```
```
>>> os.environ #因为之前已经引入了os模块,所以就不需要再次引用。environ是一个字符串所对应环境的映像对象;
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\86132\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'DESKTOP-EI437ID', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'HOME': 'C:\\Users\\86132', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\86132', 'LOCALAPPDATA': 'C:\\Users\\86132\\AppData\\Local', 'LOGONSERVER': '\\\\DESKTOP-EI437ID', 'NUMBER_OF_PROCESSORS': '8', 'ONEDRIVE': 'C:\\Users\\86132\\OneDrive', 'ONLINESERVICES': 'Online Services', 'OS': 'Windows_NT', 'PATH': 'C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\iCLS\\;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;C:\\Users\\86132\\AppData\\Local\\Microsoft\\WindowsApps;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PLATFORMCODE': 'KV', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 142 Stepping 11, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '8e0b', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'REGIONCODE': 'APJ', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\86132\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\86132\\AppData\\Local\\Temp', 'USERDOMAIN': 'DESKTOP-EI437ID', 'USERDOMAIN_ROAMINGPROFILE': 'DESKTOP-EI437ID', 'USERNAME': '86132', 'USERPROFILE': 'C:\\Users\\86132', 'WINDIR': 'C:\\WINDOWS'})
```
```
>>> os.getenv('HOME') #获得当前用户主目录
'C:\\Users\\86132'
```
### datetime --- 基本的日期和时间类型
1. datetime.date() 返回具有同样 year, month 和 day 值的 date 对象。
2. date.today() 返回当前的本地日期。
```
>>> datetime.date.today() #用date属性获取今天的日期
datetime.date(2020, 9, 22)
```
```
>>> datetime.date.today().day #获取今天的日期
22
>>> datetime.date.today().month #获取今天的月份
9
>>> datetime.date.today().year #获取今天的年份
2020
```
### time --- 时间的访问和转换
1. time.strftime(format) 返回一个由显式格式字符串所指明的代表时间的字符串。
2. %H 以补零后的十进制数表示的小时(24 小时制)。
3. %M 补零后,以十进制数显示的分钟。
4. %A 本地化的星期中每日的完整名称。
5. %p 本地化的 AM 或 PM 。
6. time.time() → float 返回以浮点数表示的从 epoch 开始的秒数的时间值。
```
>>> import time #引入处理时间类的模块
>>> time.strftime('%H:%M') #strftime() 方法用于接收时间元组,并返回以可读字符串表示的当地时间。括号中的意思为小时和分钟。获得当前的时间
'10:40'
```
```
>>> time.strftime("%A %p") #用于获取当前时间属于早上还是下午
'Tuesday AM'
```
### html --- 超文本标记语言支持
```
1.html.escape(s, quote=True) 将字符串 s 中的字符& 、 < 和 > 转换为安全的HTML序列。
2.html.unescape(s) 将字符串 s 中的所有命名和数字字符引用 (例如 >, >, >) 转换为相应的Unicode字符。
```
```
>>> import html #引入html模块.用于抓取和解析网页。
>>> html.escape('This HTML fragment contains a tag.')# 将字符串 s 中的字符& 、 < 和 > 转换为安全的HTML序列。
'This HTML fragment contains a <script>script</script>tag.'
>>> html.unescape("I ♥ Python's <standard library>.")
"I ♥ Python's ."
```
### if,else,elif:
1. if,
如果表达式为真,则执行“语句块”;如果表达式的值为假,就跳 过“语句块”,继续执行后面的语句。
2. else:如果If表达式为False,则执行else后的表达式
3. elif:在if条件为false、elif条件为true时执行
4. 代码块 代码块是将源代码组织在一起的词法结构,构成自一个或多个声明和语句。Python 的代码块不使用大括号{},而是使用冒号:和缩进。
```
>>> from datetime import datetime #引入datetime模块
>>> odds = range(1,60,2) #使用range()函数,不需要输入太多数字
>>> right_this_minute = datetime.today().minute #将right_this_minute定义为当前时间的分钟数
>>> if right_this_minute in odds: #使用if语句
print('this minute seems a little odd') #如果if条件为True则执行此项代码
else: #当if条件不成立时
print('Not an odd minute') # 当if条件为False时,运行该代码
this minute seems a little odd
```
```
>>> today = 'Tuesday'
>>> if today == 'Saturday': #使用if语句
print('Party!!') #当if条件为True时执行
elif today == 'Sunday' :#需要缩进,不缩进就会报错
print('Recover') #不管if条件为真还是假都会执行
else: #当if条件为False时执行
print('work,work,work.')
work,work,work.
```
```
>>> today ='Tuesday'
>>> if today == 'Saturday': #使用if语句
print('Party!') #当if条件为True时执行
elif today == 'Sunday': #不管if条件为真还是假都会执行
if condition == 'Headache': #嵌套一项条件
print('Recover,then rest.')#当if条件为True时执行
else:#当if条件为False时执行
print('Rest')
else: #这个else对应第二代码的if
print('work,work,work!')#当if条件为False时执行
work,work,work!
```
### 迭代
* 迭代是Python最强大的功能之一,是访问集合元素的一种方式。
* 迭代器是一个可以记住遍历的位置的对象。
* 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
* 迭代器有两个基本的方法:iter() 和 next()。
* 字符串,列表或元组对象都可用于创建迭代器:
```
>>> for i in [1,2,3]: #用for... in 在列表中进行循环
print (i)
1
2
3
```
```
>>> for ch in 'Hi': #使用for...in 在字符串中进行循环
print(ch)
H
i
```
```
>>> for num in range(5): #利用for..in range()...进行次数的循环
print('Head First Rocks!') #此处会进行5次循环
Head First Rocks!
Head First Rocks!
Head First Rocks!
Head First Rocks!
Head First Rocks!
>>>
```
* **random() 方法返回随机生成的一个实数,它在[0,1)范围内。**
* **Python time()返回当前时间的时间戳(1970纪元后经过的浮点秒数)。**
```
>>> word = 'bottles' #将值'bottles'赋给一个名为'word的新变量'
>>> for beer_num in range(99,0,-1): #将beer_num的值赋予在99~0以1为步长赋予99个值
print(beer_num,word,'of beer on the wall')#将循环数和word与of beer on the wall连用
print(beer_num,word,'of beer.')
print('Take one down')
print('Pass it around.')
if beer_num == 1: #当循环到最后一轮时
print('No more bottles of beer on the wall')#结束循环
else:
new_num = beer_num - 1 #定义一个新变量
if new_num == 1:
world = 'bottle'#改变歌词
print(new_num,word,'of the wall.')
print() #开始循环
99 bottles of beer on the wall
99 bottles of beer.
Take one down
Pass it around.
98 bottles of the wall.
98 bottles of beer on the wall
98 bottles of beer.
Take one down
Pass it around.
97 bottles of the wall.
97 bottles of beer on the wall
97 bottles of beer.
Take one down
Pass it around.
。
。
。
。
。
```