Python Day1

Python Day1


1. 环境搭建

a) anaconda环境配置

为什么选择anaconda?
原文链接:https://www.jianshu.com/p/169403f7e40c
Anaconda下载
1.下载
镜像[link] https://repo.continuum.io/archive/
官网[link]https://www.anaconda.com/distribution/#download-section
2.安装
3.配置环境变量
1)找到anaconda安装位置,复制绝对路径,;
找到Scripts文件后,复制绝对路径;
2)在高级系统设置 >环境变量中找到path
选中path ,然后点击编辑,将光标移到最后面,将键盘转换为英文输入法,输入一个分号( ; ) ,然后将复制的路径,粘贴在分号后面,点击确定,保存后关闭就可以,启动anaconda就可以使用了。

b) 解释器

使用Pychar或Visual Studio Code都方便

2. Python初体验

a) Print and input

print输出案例
Input输入案例

3. Python基础讲解

a) python变量特性+命名规则

1.变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线(_),而不能使用空格、连字符、标点符号、引号或其他字符。
2.变量名的第一个字符不能是数字,而必须是字母或下划线。
3.Python区分大小写。
4.不能将Python关键字用作变量名。
变量解释
变量特性

b) 注释方法

1) 单行注释:#

2) 多行注释:’’’ ‘’’

c) Python中“:”作用

冒号:出现在函数定义语句末尾、if for while语句末尾,表示下面的代码块应当缩进,从属于if for、while语句。

d) Import使用

  1. 标准import

Python 中所有加载到内存的模块都放在 sys.modules 。当 import 一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用 import 的模块的 Local 名字空间中。如果没有加载则从 sys.path 目录中按照模块名称查找模块文件,模块可以是py、pyc、pyd,找到后将模块载入内存,并加到 sys.modules 中,并将名称导入到当前的 Local 名字空间。

一个模块不会重复载入。多个不同的模块都可以用 import 引入同一个模块到自己的 Local 名字空间,其实背后的 PyModuleObject 对象只有一个。说一个容易忽略的问题:import 只能导入模块,不能导入模块中的对象(类、函数、变量等)。例如:模块 A(A.py)中有个函数

getName,另一个模块不能通过 import A.getName 将 getName导入到本模块,只能用 from A import getName。

2.嵌套import

2.1 顺序嵌套

例如:本模块导入
A 模块(import A),A 中又 import B,B 模块又可以
import 其他模块……

这中嵌套比较容易理解,需要注意的一点就是各个模块的 Local 名字空间是独立的。对于上面的例子,本模块 import A 之后本模块只能访问模块 A,不能访问模块 B 及其他模块。虽然模块 B 已经加载到内存了,如果访问还要再明确的在本模块中 import B。

2.2 循环嵌套

例如:文件[A.py ]

  from B import D

  class C:pass

  文件[ B.py ]

  from A import C

  class D:pass

为什么执行 A 的时候不能加载 D 呢?

如果将 A.py 改为:import B 就可以了。

这是怎么回事呢?

RobertChen:这跟Python内部 import 的机制是有关的,具体到 from B import D,Python 内部会分成几个步骤:

(1)在 sys.modules 中查找符号 “B”

(2)如果符号 B 存在,则获得符号 B 对应的 module 对象。

从 的 dict 中获得符号 “D” 对应的对象,如果 “D” 不存在,则抛出异常。

(3)如果符号 B 不存在,则创建一个新的 module 对象 ,注意,此时,module 对象的 dict 为空。执行 B.py 中的表达式,填充 的 dict。从 < module B > 的__dict__ 中获得 “D” 对应的对象,如果 “D” 不存在,则抛出异常。
所以这个例子的执行顺序如下:
1、执行 A.py 中的 from B import D 由于是执行的 python A.py,所以在 sys.modules 中并没有 存在, 首先为 B.py 创建一个 module 对象 () , 注意,这时创建的这个 module 对象是空的,里边啥也没有, 在 Python 内部创建了这个 module 对象之后,就会解析执行 B.py,其目的是填充 这个 dict
2、执行 B.py中的from A import C 在执行B.py的过程中,会碰到这一句, 首先检查sys.modules这个module缓存中是否已经存在了, 由于这时缓存还没有缓存, 所以类似的,Python内部会为A.py创建一个module对象(), 然后,同样地,执行A.py中的语句
3、再次执行A.py中的from B
import D 这时,由于在第1步时,创建的对象已经缓存在了sys.modules中, 所以直接就得到了, 但是,注意,从整个过程来看,我们知道,这时还是一个空的对象,里面啥也没有, 所以从这个module中获得符号"D"的操作就会抛出异常。 如果这里只是import B,由于"B"这个符号在sys.modules中已经存在,所以是不会抛出异常的。

2.3 包import

只要一个文件夹下面有个 init.py 文件,那么这个文件夹就可以看做是一个包。包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的 init.py 而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的
init.py 中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。

      原文:http://blog.csdn.net/zbyufei/article/details/5894645

e) 学会使用dir()及help()

dir() # 获得当前模块的属性列表

help() #函数用于查看函数或模块用途的详细说明。

f) pep8介绍

PEP8 编码规范中文版

提供的Python代码编码规范基于Python主要发行版本的标准库。Python的C语言实现的C代码规范请查看相应的PEP指南。

原文:https://blog.csdn.net/ratsniper/article/details/78954852#introduction-介绍

4. Python数值基本知识

a) python中数值类型,int,float,bool,e记法等

数值类型转换
整型(int),浮点型(float)和布尔型(bool)的通用操作
整型(int),浮点型(float)的通用操作
整型(int)位运算

原文:https://blog.csdn.net/u012005313/article/details/78152595

b) 算数运算符

算数运算符

c) 逻辑运算符

逻辑运算符

d) 成员运算符

Python里有成员运算符,可以判断一个元素是否在某一个序列中。比如可以判断一个字符是否属于这个字符串,可以判断某个对象是否在这个列表中等等。
Python中的成员操作符的使用语法是:

obj [not] in sequence

这个操作符返回值是True或者False。

e) 身份运算符

Python支持对象本身的比较,比较的语法是:

obj1 is [not] obj2

身份运算符是用来比较2个对象是否是同一个对象,而之前比较运算符中的 == 则是用来比较2个对象的值是否相等。

这里需要讲下身份运算符是怎么判断的。

Python中的变量有3个属性:name、id、value。

name可以理解为变量名,id可以联合内存地址来理解,value就是变量的值。is运算符则是通过这个id来进行判断的,id一样就返回true,否则返回false。

f) 运算符优先级

优先级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值