第一章 Python概述与开发环境安装

第一章 Python概述与开发环境安装

1、Python开发环境安装

2、Anaconda安装

选择 just me

不用勾选添加本地环境变量

  1. 查看Anaconda环境是否安装成功(查看Anaconda版本号):conda --version

  2. 查看目前安装了哪些环境变量:conda info --envs

  3. 查看 Anaconda 当前版本以及安装了哪些包:conda list

3、Spyder

3.1 读取文件里面的行数


import sys

import os.path

# 文件目录

dir = os.path.dirname(sys.executable)

# 打开文件进行操作

with open(dir+'\\num.txt', encoding = 'utf-8') as fp:

    content = fp.readlines()

# 打印文件内容的类型

print(type(content))

# 打印文件内容

print(content)

# 打印文件所在的目录

print(dir)

# 打印文件里面内容的行数

print(len(content))

结果:

<class 'list'>

['12\n', '6\n', '2\n', '35\n', '11\n', '22\n', '23\n', '11\n', '254\n', '12']

F:\Anaconda

10

4、Jupyter Notebook

默认地址:http://localhost:8888


# 使用递归

def fib(n):

    if n==1 or n==2:

        return 1

    elif n==0:

        return 0

    return fib(n-1)+fib(n-2)

# 输出第10个斐波那契数列

print(fib(10))

print(fib(0))

结果:

55

0

5、Python环境管理

5.1 打开管理终端

Windows用户打开“Anaconda Prompt”

macOS和Linux用户打开"Terminal"(终端)

5.2 创建新环境


conda create --name <env_name> <package_name>

注:

  1. env_name--创建的环境名,建议英文命名,且不加空格,名称两边不加尖括号"<>"

  2. package_name--安装环境中的包名,名称两边不加尖括号"<>"

  3. 如果要安装指定的版本号, 则只需要在包名后面以=和版本号的形式执行。如:conda create name python2 python=2.7,即创建一个名为“python2”的环境,环境中安装版本为2.7的python。

  4. 如果要在新创建的环境中创建多个包,则直接在<package_names>后以空格隔开,添加多个即可。如:conda create -n python3 python=3.7 numpy pandas,即创建一个名为“python”的环境,环境中安装版本为3.7的python,同时也安装了numpypandas

  5. 默认情况下,新创建的环境会被保存在/User/<username>/anaconda3/env目录下,其中<user_name>为系统当前用户的用户名。

5.3 激活/退出环境

激活:conda activate python3

退出:conda deactivate

5.4 删除环境

conda remove --name python3 --all

6、Python扩展库安装

6.1 添加清华大学的Anaconda镜像


conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

# 设置搜索时显示通道地址

conda config --set show_channel_urls yes

conda install numpy 测试

查询可供安装的扩展库版本

conda search --full-name pandas

获取当前环境中已安装的扩展库信息

conda list

6.2 在指定环境中安装包


conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

conda activate python3

conda install numpy

6.3 在当前环境中卸载包

conda remove <package_name>

6.4 在指定环境中卸载包

conda remove --name <env_name> <package_name>

7、 Python扩展库导入

建议先导入标准库再导入扩展库对象,只导入确实需要使用的标准库和扩展库对象,提高加载速度,减少打包体积

7.1 import 模块名[as 别名]

使用时需要在对象之前加上模块名作为前缀,即“模块名.对象名”


import math

import random

import posixpath as path

print(math.sqrt(16))    # 计算并输出16的平方根

print(math.cos(math.pi/4))  # 计算余弦值

print(random.choices('abcd', k=8))  # 从字符串'abcd'随机选择8个字符

# 允许重复

print(path.isfile(r'C:Windows\notepad.exe'))    #测试指定路径是否为文件

结果:

4.0

0.7071067811865476

['b', 'b', 'd', 'b', 'a', 'd', 'a', 'c']

False

7.2 from 模块名 import 对象名 [as 别名]

不需要模块名作为前缀,导入方式可以减少查询次数,提高访问速度


from math import pi as PI

from os.path import getsize

from random import choice

r = 3

print(round(PI*r*r, 2)) # 计算半径为3的圆面积

print(getsize(r'C:Windows\notepad.exe'))    # 计算文件大小,单位为字节

print(choice('Python')) # 从字符串中随机选择一个字符

结果:

28.27

254464

o

7.3 from 模块名 import *

不推荐使用


from itertools import *

characters = '1234'

for item in combinations(characters, 3):    # 从4个字符中任选3个组合

print(item, end=' ')                    # end=' ' 表示输出后不换行

print('\n'+'='*20)                          # 行号后输出20个等于号

for item in permutations(characters, 3):    # 从4个字符中任选3个的排列

print(item, end=' ')                   

8、Python常用标准库

8.1 字符串

re:正则表达式。用来判断是否是你指定的特定字符串。

StringIO:提供以文件形式来读写字符串。

struct:以二进制字节序列来解释字符串。可以通过格式化参数,指定类型、长度、字节序(大小端)、内存对齐等。


import re

print(re.findall(r'f[a-z]*',  'which foot or hand fell fastest'))

结果:

['foot', 'fell', 'fastest']

如果只需要简单的功能,应该首先考虑字符串,因为简单,易于阅读和调试,如:


print('tea for too'.replace(''too,''two'))

结果:

'tea for two'

8.2 数据类型

datetime:提供操作日期和时间的类。

collections:高性能容器数据类型。实现了Python的通用内置容器、字典、列表、集合,和元组专门的数据类型。

pprint:提供“整洁打印”功能,具有打印任意Python数据结构的能力。

8.3 数学运算

random:各种分布的伪随机数的生成器。

math:数学函数。提供了由C标准的数学函数访问。该库函数不适用于复数。

cmath:为复数提供的数学函数。

operator: 重载运算符。

math 模块为浮点运算提供了对底层C函数库的访问


import math

print(math.cos(math.pi/4))

print(math.log(1024, 2))

结果:

0.7071067811865476

10.0

random 提供了生成随机数的工具


import random

fruits = random.choice(['apple', 'pear', 'banana'])

x = random.sample(range(100), 10) # 0-100选择不能重复的10个数

y = random.random() # 随机浮点数

z = random.randrange(6) # 从范围0-6中选择随机整数

print(fruits)

print(x)

print(y)

print(z)

结果:

apple

[64, 97, 91, 21, 40, 55, 63, 79, 77, 1]

0.8885638928051524

0

8.4 文件和目录

os.path:常用路径名操作。

filecmp:文件和目录的比较。

shutil:高级的文件操作:支持文件复制和删除。

8.5 操作系统

time:时间获取和转换,各种与时间相关的函数。

argparse:命令行选项、参数和子命令的解析器。

io:提供接口处理的IO流。

logging: Python的日志工具,提供日志记录的API。

logging.config:Python日志配置,用于配置日志模块的API。

os:提供丰富的与MAC,NT,Posix等操作系统进行交互的能力。

sys:提供访问和维护python解释器的能力。这包括了提示信息,版本,整数的最大值,可用模块,路径钩子,标准错误,标准输入输出的定位和解释器调用的命令参数。

os模块提供了不少与操作系统相关联的函数


import os

print(os.getcwd())  # 返回当前的工作目录

os.chdir(r'C:Users\winner\Python3Learn\Lesson1Code') # 修改当前的工作目录

os.system('mkdir today') # 执行系统命令 mkdir

print(os.getcwd())  # 返回当前的工作目录

建议使用import os 风格而非from os import *,这样可以保证随操作系统不同而有所变化的os.open()不会覆盖内置函数open()。

在使用os这样的大型模块时,内置的dir()和help()函数非常有用。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342