while循环与使用场景
循环语句:
while语句(只要判断语句真,就执行循环,直到判断为假)
1、ctr + C 强行终止运行
2、如何避免while出现死循环:
while后的条件判断语句不能是一个常量;
3、当while后面的条件判断语句是False时,执行else下面的代码块;
4、while的使用场景:递归
慕课网python学习笔记5
for与for-else循环
1.for主要用来遍历/循环 序列或者集合、字典.
2.横向打印在print(y,end=’’)
3.for else循环中for遍历完之后再执行else
4.跳出循环:break 如果用break强制跳出(打断)不会执行else中的语句
a = [1,2,3]
for x in a:
if x == 2:
break
print(x)
5.跳过循环: continue 会执行else中的语句
a = [1,2,3]
for x in a:
if x == 2: #前面有四个空格
continue #前面有八个空格
print(x) #前面有四个空格
for与range
慕课网python学习笔记5
1.for限制范围不需要用i:
for x in range(0,10):
print(x)
2.range(0,10)
注意10代表的不是终止数,而是偏移量。从0开始,总共10个数字。
3.递增等差数列:
for x in range(0,10,2):
print(x, end=’|’)
output:
0|2|4|6|8|
2是间隔几个数字
4.递减等差数列:
for x in range(10,0,-2):
print(x, end=’|’)

range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
递减的实现,则要求在range(a,b,c)中,a>b,c是负数
递增的实现,则要求在range(a,b,c)中,a<b,c是正数
慕课网python学习笔记5
新篇章导言
a=[1,2,3,4,5,6,7,8,]
for i in range(0,len(a),2):
print(a[i],end=’|’)
输出 1|3|5|7
用序列的切片来实现:
b = a[0:len(a):2]
print(b)
输出【1,3,5,7】
代码简介,封装性高,会写代码很容易,难在写出性能高,复用性好,封装性能
读别人的源代码是基本功
逻辑思考能力和抽象能力,现实生活到计算机里面的映射,生活中是直白,直白没有
感染力和渲染力,考虑艺术层面,这些直白的代码是不合适的,效率和传递是不合适的
美与不美的代码
python工程的组织结构:包,模块,类
Python组织结构的意义:在相对复杂的项目下,便于管理,便于维护,便于复用
组织结构:包(可以理解为文件夹)–模块(.py文件)–类(class:包括函数、变量。函数变量算作类里的具体组成部分,类的特性)
之前学到的都是直接在模块下写函数、变量,最好还是把函数变量组织成“类”
python包与模块的名字
路径叫做命名空间
包的名字就是文件夹的名字,模块的名字就是文件的名字
区分不同包的同名模块
seven.c4
six.c4
包的名字.模块名字组成一个路径
init.py让普通文件夹变成一个包,用来标注一个包(前后都是两个下划线)
init里可以什么都不写,也可以在里面编写一段代码
init模块名字就是包名 seven
慕课网python学习笔记5
import导入模块
模块导入import #import不能直接导入变量
导入模块语法:
一.import 模块名
注意:(1).使用模块前请先导入后使用;(2).使用导入模块中的变量或函数的格式:模块名.变量或函数。
二.如果结构不同层级,要用命名空间解决。
import t.c7
print(t.c7.a)
三.import 模块名 as 名称
此语法可以解决命名空间过长问题。
如:import t.c7 as m
print(m.a)
慕课网python学习笔记5
慕课网python学习笔记5
from import 导入变量
(1)导入变量:from module import a ,def(可以导入一个变量,也可以是一个函数)

调用 a 的时候不需要命名空间(module.a)

(2) * 表示导入文件的所有变量,函数

可以控制能被引用的函数和变量,利用 all(模块的内置变量、内置属性)#这里是双下划线
在模块里定义__all__:
all = [‘a’,‘c’]
这样在from 模块 import * 时,别的模块就只能导入a、c变量(可以强行from 模块 import b 强行导入)

from import 用法比较灵活 可以从包引入模块
慕课网python学习笔记5
慕课网python学习笔记5
init.py的用法
在设置里面搜索files.exclude,输入文件名:true 这样可以使得在vscode的文件夹里不显示某种文件,即把它隐藏起来。
慕课网python学习笔记5
如图所示,false代表隐藏起来

1,代码换行最好用() 也可以在末尾加上反斜杠
2,init.py 的作用:
①当包或该包下的模块,变量…被导入时,该文件自动执行。可以用来做包和模块的初始化。
②可以在__init___.py文件中定义’‘all’'变量来定义该包下哪些模块可以被其它模块引用(from 包 import *)。
③可以利用__init__.py文件做批量导入
在子包的 init.py文件里导入需要的模块, 然后在上一级 import 子包名 进行模块的批量导入 注意 ::引用的时候注意命名空间 子包名.def
3,init.py文件名 就是包名
慕课网python学习笔记5
慕课网python学习笔记5
如图所示,在init里写入了all代码,说明在其他模块想调用t包,就只能调用t包中的c7模块,如图调用c8.e就会报错。
批量导入:
慕课网python学习笔记5
慕课网python学习笔记5
注意在使用时一定要加上包的名字.(如图中的t.),这样就实现了批量导入,很是方便
包与模块的几个常见错误
1 . 包和模块不会被重复导入;
2 . 避免循环导入,不管是直接循环还是间接循环。
例如:1)直接循环:p1.py中导入p2.py的变量,同时p2.py中又导入p1.py的变量。
2)间接循环:p1.py中导入p2.py的变量,p2.py中导入p3.py的变量,p3.py中导入p4.py的变量,p4.py中导入p1.py的变量,形成一个闭环。
解决方法:打开循环,取消最后一个文件的import语句或变为注释
慕课网python学习笔记5
如图,这么写的话程序是会报错的
模块内置变量
infos=dir()
print(infos)
dir() 可以查看内置的变量
1 . name: 模块的完整名字,包括命名空间.模块名
2 . package: 模块所在的包
3 . file :文件所在的物理路径 完整的windows路径
4 . doc: 模块内的注释说明内容
慕课网python学习笔记5
如果在t文件夹下面新建一个t1文件夹,那么import时就要
慕课网python学习笔记5
导入一个模块后,就会执行改模块下的所有代码(划重点)
入口文件和普通模块内置变量的区别
入口文件和普通模块内置变量的区别:
当作普通模块导入:
name:完整的模块名 (ps:t.c9)
file:当前模块在系统里的物理路径
package:模块所在的包
当作入口文件执行:
name:被强制改为__main__
file:与执行路径有关,相对执行路径的文件名 (ps:在同一级目录执行c9,__file__为c9.py,在上一级执行c9,__file__为t/c9
package:不属于任何包,若强制用print打印,会报错Type Error: must be str, not NoneType
慕课网python学习笔记5
慕课网python学习笔记5
__name__的经典应用
1.dir()函数括号内如果什么都不写,则输出的是当前模块里所有的变量。
当需要查看某个函数或类里的变量时,可以使用dir()函数
2.python中的普通模块必须有一个包,当想要把一个可执行文件当作一个普通模块运行时,可以使用-m参数,如:
python -m 命名空间(包).模块名
3.if name == ‘main’ :
pass
意思是:make a script both importable and executable(让这个脚本既可以作为一个普通的模块被导入到其他模块中,也可以作为可执行模块)
作用:判断当前模块是否为入口文件
相对导入和绝对导入
顶级包与入口文件main.py(可执行文件)的位置有关,与入口文件main.py同级的包就是该包下所有模块的顶级包。而对于入口文件来说不存在包的概念。

绝对导入/绝对路径:从顶级包到被导入模块名称的完整路径。
相对导入,一个’.‘表示当前包,两个’…‘表示上一级包.’…'上上级包,以此类推

注意:
import不支持相对导入,只能使用from import格式实现相对导入。
入口文件中不能使用相对导入,因为它没有包的概念。
使用相对导入不要超出顶级包///(入口文件同级都不能使用相对导入,放到包下面去)
ps:这里还有一节课,但是目前对于这些概念理解的还不是很透彻,所以先跳过去,以后再进行学习

相关文章: