路径

可以简单的理解为路径就是某个事物所在的具体位置(坐标)

1.相对路径:必须有一个参考系,就是相对于自己的目标文件的位置。

2.绝对路劲:不需要有参考系,是指文件在硬盘上真正存在的路径。

计算机五大组成部分

1.控制器:控制计算机各个硬件的工作

2.运算器:负责数学运算、逻辑运算 是整个计算机的核心所在

3.存储器:负责存取数据,内存,外存

4.输入设备:向计算机内部传递信息

5.输出设备:向计算机外部传递信息

三大核心硬件

1.CPU:中央处理器,是一块超大规模的集成电路,负责处理数据/计算(负责干活的)

2.内存:存储数据(断电之后,数据会消失),速度快,空间小

3.外存(硬盘):永久存储数据,速度慢,空间大

python语法之注释

1. # 注释内容

2. '''注释内容'''

3."""注释内容"""

变量与常量

1.变量:变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等等

2.常量:常量指在程序运行过程中不会改变的量,比如圆周率 3.141592653...

数据类型

1.整型 (int):整型数据只用来表示整数,不包含小数部分的数据值类型

2.浮点型(float):浮点型就是小数

3.字符串(str):描述性性质的信息,使用('内容',"内容",'''内容''',"""内容"""来创建字符串。

4.列表(list):能够存储多个数据 并且能够方便的获取整体或者局部,中括号括起来 内部可以存放多个数据值 数据值与数据值用逗号隔开数据值可以是任意数据类型

5.字典(dict):能够存储多个数据 并且能够方便的获取整体或者局部 并且数据具有对于解释大括号括起来 内部可以存放多个数据 数据的组织形式是K:V键值对(无序)

6.元组(tuple):能够存储多个数据 并且能够方便的获取整体或者局部,小括号括起来 内存可以存放多个数据值 数据值与数据值之间逗号隔开数据值可以是任意数据类型

7.集合(set):集合只用于去重和关系运算,去重:自动去除重复的数据,关系运算:判断两个集合之间数据的关系(无序)

8.布尔值(bool):用来表示事物是否可行 是否正确 是否合理,布尔值为False的数据有,0 None 空字符串 空列表 空字典 ...除上述之外所有的数据对于的布尔值都是True

与用户交换

1.输入:向计算机传递信息,input() # 获取用户输入

2.输出:计算机向外界输出信息,print() # 打印数据值

格式化输出

1.占位符:%s: 支持所有数据类型替换 (以后我们使用最多的就是%s),%d: 只支持给数字占位

运算符

1.算数运算符:+   -   *    /   %  //   **

2.比较运算符:==   !=   <   >    >=    <=

3.赋值运算符:+=  -=  *=   %=  ......,链式赋值 x=y=z=10  ,交叉赋值 m  n = n  m ,解压赋值 a, *args = [1, 2, 3, 4, 5]

4.逻辑运算符:逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False

and (与)链接的多个条件必须都成立结果才成立(True)

or (或)链接的多个条件有一个成立结果就成立(True)

not (非)将条件取反(原本是对的就变成错的 如果是错的就变成对的)

优先级先看括号里(),无括号,not>and>or 两边都不为0的情况 or 直接取前面的值 and 直接取后面的值,如果存在0的情况 and 直接取0 or 直接取非0
5.成员运算符:in 在什么什么之内 ,not in 不在什么什么之内

6.身份运算符:is 判断数据值的内存地址是否一致,== 判断数据值得值是否一致 地址无所谓,id() 该方法会返回一串数字 相当于内存地址

流程控制

本质就是事物的执行流程 事物的执行流程总共就三种,顺序结构,分支结构,循环结构

1.顺序结构:从上往下依次执行,之前我们写的代码都是顺序结构

2.分支结构:根据条件的不同执行不同的代码,用到if判断

单if分支:if 条件

条件成立执行执行的代码(子代码)   # 条件可以是布尔值 也可以是表达式,判断的条件可以是一个 也可以是有逻辑运算符连接的多个

if...else分支:if 条件:

条件成立之后执行的子代码

else:

条件成立之后执行的子代码   # 判断的条件可以是一个 也可以是由逻辑运算符连接的多个

if...elif...else分支:if 条件1:

条件1成立执行的子代码

elif 条件2:

条件1不成立 条件2成立执行的子代码

elif 条件3:条件1和2都不成立

条件3成立执行的子代码

else:上述所有的条件都不成立执行的子代码

# if elif else三者连用 永远只会走一个分支,elif 和 else都不能单独使用 必须结合if

if的嵌套:if 条件1:

if 条件2:

else:

else:

3.循环结构:根据条件的判断绝对是否一直做某件事,用到while与for  在取值中 for 比 while 更简洁

while

                     while 判断条件:
                            执行的子代码
执行语句可以是单个语句或语句块。
                     判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。
                     1.先判断while后面的条件是否成立 如果成立则执行子代码
                     2.子代码运行完毕之后 再次回到while后面的条件判断处 判断条件是否成立
                     3.如果成立则继续运行子代码 完毕后再次判断while后面的条件是否成立
                     4.依次往复 直到条件不成立才会结束
                     while+break
                            结束循环体的方式
                            1.自己写结束条件 利用while后面的条件判断
                            2.在循环体代码中添加关键字强制结束
                            3.一个break只能结束它所在那一层的循环体代码
                     while+continue
                             continue 代表着结束本次循环,直接进入下一次循环
                     while+esle
                             在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句
           for
                   for 变量名 in 可迭代对象:#字符串 列表 字典 元组   针对变量名的命名 如果带取值的数据有明确的指向 最好见明知意
                            for 循环的循环体代码
                   for循环 字典: for 循环字典 默认只能取到字典的key
                   for 循环 字符串:for 循环字符出串 默认每次取单个字符
                   for 循环 元组: for 循环元组数据与列表一致 默认都是单个数据值
                   for 循环 集合: for 循环集合数据与列表一致 默认都是单个数据值
                   for 循环 range
                            range方法  : range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
                            for i in range(5): 如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
                            for i in range(3, 7):括号内有两个数字 第一个是起止位置(包含)  第二个是终止位置(不包含)
                            for i in range(2, 30, 5):3.括号内有三个数字 最后一个是数据间隔符(等差数列)
                   for+break:  break:能够结束所在的那一层for循环
                   for+continue:  continue也能够结束所在的那一次for循环 直接开始下一次 
                   for+else:  else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码

在python2中有两个
                            range() :直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
                            xrange():就是python3里面的range方法
                   在python3中只有一个
                            range()类似于是一个工厂 什么时候要什么时候创建给你 节省内存

4.死循环和全局标志位
        1.死循环,计算死循环 不允许出现 有问题,有等待时间 允许出现 没有问题
        2.全局标志位,运用在循环嵌套中,把break省写

数据类型的内置方法

数据类型是用来记录事物状态的,而事物的状态是不断变化的(如:一个人年龄的增长(操作int类型),单个人名的修改(操作str)类型,学生列表中增加学生(操作list类型)等),这意味着我们在开发程序时需要频繁对数据进行操作,为了提升我们的开发效率,python针对这些常用的操作,为每一种数据类型内置了一系列方法。
        内置方法可以简单的理解成是每个数据类型自带的功能
        使用数据类型的内置方法统一采用句号符:数据类型,方法名()

1.整型相关方法

关键字 int() 整型就是整数 主要用于计算 没有内置方法

print(type(int('123')))  # 字符串 内部是纯数字情况 可以转换
print(type(int('12a11'))) # 字符串里面必须是纯数字才可以转换
print(type(int('12.12'))) # 小数点也不行
# 十进制转换其他进制 如果数字前面没有任何标识 默认就是十进制
print(bin(50)) # bin() 将十进制转二进制 0b110010 0b是二进制的标识
print(oct(50)) # oct() 将十进制转八进制 0o62 0o是八进制数的标识
print(hex(50)) # hex() 将十进制转换十六进制 0x32 0x是十六进制的标识
# 其他进制转十进制
# 自动识别进制数
print(int(0b110010)) # 50
print(int(0o62)) # 50
print(int(0x32)) # 50
# 人为识别进制数
print(int('0b110010', 2)) # 50
print(int('0o62', 8)) # 50
print(int('0x32', 16)) # 50

2.浮点型相关方法

关键字 float

print(float('123'))            # 123.0
print(type(float('123'))) # float
print(float('12.12')) # 只可以识别一个小数点
print(float('12a12')) # 不可以
print(float('12.12.12')) # 不可以

3.布尔值相关方法

关键字bool   没有特殊说明的情况下  1 对应 True   0 对应 Float

print(float(True))  # 1.0
print(float(False)) # 0.0
print(int(True)) # 1
print(int(False)) # 0

4.字符串相关方法

关键字str    类型转换:兼容所有数据值

索引取值:单个字符 支持负数

切片取值:多个字符 支持负数 切片的顺序默认从左到右

s1 = 'hello world'
print(s1[0:3]) # hel 从索引0的位置开始切到索引2的位置 顾头不顾尾
print(s1[-1:-3]) # 切片的顺序默认从左到右 所以返回为空
print(s1[-1:-3:-1]) # dl 可以通过第三个参数的正负一 控制方向
print(s1[-3:-1]) # rl 顾头不顾尾

间隔/方向:

print(s1[:])  # hello world 所以
print(s1[::]) # hello world 针对整个字符串 隔一个取一个
print(s1[0:5:1]) # hello 默认1可以不写
print(s1[0:5:2]) # hlo 间隔取一个

统计字符串中字符的个数  len

print(len('hello world'))  # 可以看见字母只有十个 而结果是11 空格也算字符串

移除字符串首尾指导的字符 strip

# 移除字符串首尾指导(空格)的字符  中间不能
# 用于用户登录功能,输入时打空格

按照指定的字符切割字符串 split

info = 'jason|123|read'
'''当字符串中出现了连续的特征符号 应该考虑使用切割操作'''
res = info.split('|') # 切割字符串之后结果是一个列表
print(res, type(res)) # ['jason', '123', 'read'] <class 'list'>
name, pwd, hobby = info.split('|') # 等价于 name, pwd, hobby = ['jason', '123', 'read']
print(info.split('|', maxsplit=1)) # 从左往右 只切一次 ['jason', '123|read']
print(info.rsplit('|', maxsplit=1)) # 从右往左 只切一次 ['jason|123', 'read']

字符串大小写相关 lower 小写 upper 大写

s2 = 'HeLLo Big BAby 666 你过的还好吗'
print(s2.lower()) # hello big baby 666 你过的还好吗
print(s2.upper()) # HELLO BIG BABY 666 你过的还好吗
print(s2.islower()) # 判断字符串中所有的字母是否是全小写 False
print(s2.isupper()) # 判断字符串中所有的字母是否是全大写 False
print('aaa'.islower()) # True
print('AAA'.isupper()) # True

字符串的格式话输出 format

# 方式1: %s 占位 没有什么优势
rest = 'my name is {} my age is {}'
print(rest.format('zhang', 21)) # my name is zhang my age is 21
# 方式2: 支持索引取值 并且支持重复使用
rest2 = 'my name is {0} my age is {1}'
print(rest2.format('zhang', 21)) # my name is zhang my age is 21
rest2 = 'my name is {0} my age is {1} {0} {1} {1}'
print(rest2.format('zhang', 21)) # my name is zhang my age is 21 zhang 21 21
# 方式3: 支持关键字取值(按k 取值) 并且支持重复使用
rest3 = 'my name is {name} my age is {age}'
print(rest3.format(name='zhang', age=12)) # my name is zhang my age is 12
rest3 = 'my name is {name} my age is {age} {name} {age}'
print(rest3.format(name='zhang', age=12)) # my name is zhang my age is 12 zhang 12
# 方式4 重要 定义变量 f 打印
name = 'zhang'
age = 12
print(f'my name is {name} my age is {age}') # my name is zhang my age is 12
print(f'my name is {name} {name} my age is {age} {age}') # my name is zhang zhang my age is 12 12

统计字符串中指定字符出现的次数 count

rest = 'zafhkjavbuqgiufqkjbckjbzbciuzzhfliuqhajbjb'
print(rest.count('z')) # 4
print(rest.count('jb')) # 4

判断字符串的开头或者结尾 startswith开头 endswith结尾

rest = 'my name is zhang my age is 12'
print(rest.startswith('my')) # True
print(rest.startswith('m')) # True
print(rest.startswith('a')) # False
print(rest.endswith('2')) # True
print(rest.endswith('12')) # True
print(rest.endswith('e')) # False

字符串的替换 replace

rest = 'zhang zhnag zhang 12 21 12 21'
print(rest.replace('zhang', 'zzz')) # zzz zhnag zzz 12 21 12 21
print(rest.replace('12', '21')) # 从左往右全部替换 # zhang zhnag zhang 21 21 21 21
print(rest.replace('zhang', 'zzz', 1)) # 从左往右替换指定个数 # zzz zhnag zhang 12 21 12 21

字符串的拼接 join

rest1 = 'hello'
rest2 = 'world'
print(rest1 + rest2) # 字符串支持加号拼接 # helloworld
print(rest1 * 3) # 字符串支持乘号拼接 # hellohellohello
print(''.join(['hello', 'world', 'hhh'])) # join方法拼接 # helloworldhhh
print('|'.join(['hello', 'world', 'hhh'])) # join方法拼接 #hello|world|hhh
print('$'.join(['hello', 'world', 11])) # 列表中的数据都必须是字符串类型 报错!!

判断字符串中是否是纯数字 isdigit

print('123'.isdigit())  # Ture
print('123a'.isdigit()) # False
print(''.isdigit()) # False

查找某个字符对应的索引值 index find

rest = 'hello world'
print(rest.index('w')) # 6
print(rest.find('w')) # 6
index查找索引 如果没有则报错
print(rest.index('d', 0, 5))
'''find 查找索引 如果没有则返回 -1 ,-1 表示没有,出错,不能执行'''
print(rest.find('d', 0, 5))

正文相关操作 开头首字母大写  title  首字母大写 capitalize

rest = 'my name is zhang'
print(rest.title()) # 表示每个单词的首字母都大写 # My Name Is Zhang
print(rest.capitalize()) # 表示一句话的单词首字母大 # My name is zhang

5.列表的相关方法

关键字list 能够被for 循环的数据类型都可以装换成列表

索引取值

l1 = ['zhang', 'li', 'wang', 'liu']
# 1.索引取值
print(l1[1]) # li
print(l1[-1]) # liu

切片操作

print(l1[0:3])  # ['zhang', 'li', 'wang']
print(l1[:]) # ['zhang', 'li', 'wang', 'liu']
print(l1[-3:-1]) # ['li', 'wang']

间隔方向

print(l1[::2])  # ['zhang', 'wang']

统计列表中数据值的个数

print(len(l1))  # 4

【python基础】第10回 周总结的更多相关文章

  1. python基础学习10

    python基础学习 内容概要 文件内光标的移动 文件数据修改 函数简介 函数语法结构 内容详情 文件内光标的移动 with open(r'路径','r',encoding='utf8') as f: ...

  2. python基础(10)--模块

    模块(module) 模块,用一坨代码实现了某个功能的代码集合 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来 ...

  3. Python基础(10)--数字

    本文的主题是 Python 中的数字.会详细介绍每一种数字类型,它们适用的各种运算符, 以及用于处理数字的内建函数.在文章的末尾, 简单介绍了几个标准库中用于处理数字的模块. 本文地址:http:// ...

  4. 我的Python成长之路---第三天---Python基础(10)---2016年1月16日(雾霾)

    二.collections collections是对Python现有的数据类型的补充,在使用collections中的对象要先导入import collections模块 1.Counter——计数 ...

  5. python基础语法10 函数递归,模块,软件开发目录规范

    函数递归: 函数递归指的是重复 “直接调用或间接调用” 函数本身, 这是一种函数嵌套调用的表现形式. 直接调用: 指的是在函数内置,直接调用函数本身. 间接调用: 两个函数之间相互调用间接造成递归. ...

  6. Python基础:10函数参数

    局部命名空间为各个参数值创建了一个名字,一旦函数开始执行,就能访问这个名字了. 在函数调用时,有非关键字参数和关键字参数之分,非关键字参数必须位于关键字参数之前. 在函数定义时,严格的顺序是:位置参数 ...

  7. python 基础篇 10 函数进阶

    本节主要内容:1. 函数参数--动态传参2. 名称空间, 局部名称空间, 全局名称空间, 作⽤域, 加载顺序.3. 函数的嵌套4. gloabal, nonlocal关键字 ⼀. 函数参数--动态传参 ...

  8. Python基础(10)_内置函数、匿名函数、递归

    一.内置函数 1.数学运算类 abs:求数值的绝对值 divmod:返回两个数值的商和余数,可用于计算页面数 >>> divmod(5,2) (2, 1) max:返回可迭代对象中的 ...

  9. python 基础 9.10 删除数据

      #/usr/bin/python #-*- coding:utf-8 -*- #@Time   :2017/11/24 4:40 #@Auther :liuzhenchuan #@File   : ...

随机推荐

  1. acwing刷题-放养又没有完全放养

    题目 一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」. 牛文由 26 个字母 a 到 z 组成,但是当奶牛说牛文时,可能与我们所熟悉的 abcdefghijklmnopqrstuvwxyz 不同, ...

  2. JS/TS项目里的Module都是什么?

    摘要:在日常进行JS/TS项目开发的时候,经常会遇到require某个依赖和module.exports来定义某个函数的情况.就很好奇Modules都代表什么和有什么作用呢. 本文分享自华为云社区&l ...

  3. python基础练习题(题目 模仿静态变量的用法)

    day27 --------------------------------------------------------------- 实例041:类的方法与变量 题目 模仿静态变量的用法. 程序 ...

  4. 数据库基础知识详解五:MySQL中的索引和其两种引擎、主从复制以及关系型/非关系型数据库

    1.MySQL中的索引 在MySQL,索引是由B+树实现的,B+是一种与B树十分类似的数据结构. 形如下面这种: 其结构特点: (1)有n课子树的结点中含有n个关键码. (2)非根节点子节点数: ce ...

  5. 从0开始基于Webpack5 搭建HTML+Less 前端工程

              基于Webpack5 搭建HTMl+Less的前端项目 新建一个文件夹(比如命名为webpack) 用编辑器打开该文件夹,并在编辑器的终端执行 npm init -y 自动创建pa ...

  6. bellman-ford 单源最短路问题 图解

    ​ 核心思想:松弛操作 对于边(u,v),用dist(u)和(u,v)的和尝试更新dist(v): dist(v) = min(dist(v) , dist(u)+l(u,v) 注:dist(i)为源 ...

  7. umi框架应用服务端SSR,实现数据预渲染

    当我们的应用使用服务端渲染的方式时,可能需要把初始化加载的数据例如推荐等不需要用户输入的内容直接渲染获取,也有利于SEO. 上一篇已经实现服务端渲染,本次实现服务端获取数据后在做渲染. 利用getIn ...

  8. ChCore Lab1 机器启动 实验笔记

    本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第一篇. 书籍官网:现代操作系统:原理与实现,里面有实验的参考指南和代码仓 ...

  9. GitStats - 统计Git所有提交记录工具

    如果你是研发效能组的一员或者在从事 CI/CD 或 DevOps,除了提供基础设施,指标和数据是也是一个很重要的一环,比如需要分析下某个 Git 仓库代码提交情况: 该仓库的代码谁提交的代码最多 该仓 ...

  10. [笔记] prufer 序列

    什么是 prufer 序列 是可以和 \(n\) 个有标号节点的无根树一一对应的长度为 \(n-2\) 的序列. 一般来说是用于和树相关的组合计数问题,但是可能会出现一些变形,所以除了要了解一些性质, ...