1、Python语言概述
1.1、转义字符
1.1.1、常用的转义字符
\t | 一个制表位,实现对齐的功能 |
\n | 换行符 |
\\ | 一个\ |
\' | 一个' |
\" | 一个" |
\r | 一个回车 |
1.2、注释
1.2.1、单行注释
# + 其他
1.2.2、多行注释
三个单引号 ''' + xxx + ''' 或 三个双引号 """ + xxx + """
1.2.3、文件编码声明注释
# coding:编码
# coding:utf-8
## 用途:用于指定文件的编码格式(放在文件开头)
2、变量
2.1、变量基本原理
变量三要素 = 类型 + 名称 + 值
2.2、格式化输出
2.2.1、%操作
age = 80
score = 70.5
gender = 'male'
name = 'John'
print("info: %s %d %s %.1f" % (name, age, gender, score))
2.2.2、format()函数
print("info: {} {} {} {} ".format(name, age, gender, score))
2.2.3、f-strings
print(f"info: {name} {age} {score} {gender}")
2.3、加法运算
- 左右两边都是数值型时,则做加法运算。
- 左右两边都是字符串时,则做拼接运算。
2.4、数据类型
2.4.1、通过使用 type() 来查看数据的数据类型
type(object)
2.4.2、整数类型
2.4.2.1、进制
2.4.2.2、Python中的整型占多少个字节
字节(byte):计算机中基本存储单位。
位(bit):计算机中的最小存储单位。
1byte = 8 bit
- 字节数随着数字的增大而增大(Python整型是变长的)。
- 每次的增量是4个字节。
2.5、浮点类型
- 其实也就是小数。
- 科学计数法表示:
# 5.12乘以10的2次方 5.12e2 # 5.12除以10的2次方 5.12E-2
- 浮点类型计算后,存在精度的损失,可以使用 Decimal 类进行精确计算。
b = 8.1 / 3 # 2.7 # 解决方法 from decimal import Decimal b = Decimal("8.1") / Decimal("3")
2.6、布尔类型
2.6.1、知识点
- 布尔类型也叫bool类型,取值为 True 和 False。
- bool类型适用于逻辑运算,一般用于流程控制。
- bool在运算中,True为1,False为0。
- 在Python中,非0值被视为真值,0值被视为假值。
2.7、字符串类型
2.7.1、知识点
- 使用引号(单双引号都可以)包括起来,创建字符串。
- 在字符串前面加 'r' 可以使整个字符串不会被转义。
2.7.2、字符串的驻留机制
- 相同值的变量指向同一个内存地址。
2.8、数据类型转换
2.8.1、隐式类型转换
- 在运算的时候,数据类型会向高精度自动转换。
2.8.2、显式类型转换
- 借助一些函数来做转换。
3、运算符
3.1、运算符介绍
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 位运算符
3.2、算术运算符
3.2.1、知识点
3.3、比较运算符
3.3.1、知识点
- 比较运算符的结果要么是 True,要么是 False。
3.4、逻辑运算符
3.4.1、知识点
假设:a=10,b=20
3.5、赋值运算符
3.5.1、知识点
- 赋值运算符就是将某个运算后的值,赋给指定的变量。
3.6、三元运算符
3.6.1、知识点
- 语法是:max = a if a > b else b
3.7、运算符的优先级
3.8、标识符的命名规则和命名规范
- 凡是可以自己起名字的地方都叫标识符。
3.9、关键字
- 被Python语言赋予了特殊含义,用作专门用途的字符串(单词)。这些关键字不要用做标识符了。
3.10、键盘输入
- 需要接收用户输入的数据,可以使用键盘输入语句来获取。
- 一般使用:input()函数。
- 从控制台接收到的数据类型是 字符串类型。
4、进制(先跳过,后续补充!)
5、程序控制结构
三大流程控制语句:
- 顺序控制。
- 分支控制。
- 循环控制。
5.1、顺序控制
5.1.1、知识点
- 程序从上到下逐行地执行,中间没有任何判断和跳转。
5.2、分支控制if-else
5.2.1、单分支
if 条件表达式:
代码块(可以有多条语句)
5.2.2、双分支
if 条件表达式:
执行代码块1
else:
执行代码块2
5.2.3、多分支
if 条件表达式:
执行代码块1
elif:
执行代码块2
......
else:
执行代码块n+1
5.3、嵌套分支
- 在一个分支结构中又嵌套了另一个分支结构。
5.4、for循环控制
5.4.1、知识点
for <变量> in <范围/序列>:
<循环操作语句>
5.5、while循环控制
while 判断条件:
循环操作语句
5.6、多重循环
思路如下:
- 1、矩形:
# i控制层数 for i in range(1, 6): # j控制每层输出的*的个数 for j in range(1, 6): # 这里的end=''表示输出不换行 print("*", end='') # 表示每层输出后换行 print('')
- 直角三角形:
# i控制层数 for i in range(1, 6): # j控制每层输出的*的个数 for j in range(i): # 这里的end=''表示输出不换行 print("*", end='') # 表示每层输出后换行 print('')
- 金字塔:
# i控制层数 for i in range(1, 6): for k in range(5-i): print(' ', end='') # j控制每层输出的*的个数 for j in range(2*i-1): # 这里的end=''表示输出不换行 print("*", end='') # 表示每层输出后换行 print('')
- 空心金字塔:
# i控制层数 for i in range(1, 6): for k in range(5-i): print(' ', end='') # j控制每层输出的*的个数 for j in range(2*i-1): # 这里的end=''表示输出不换行 if j == 0 or j == 2*i-1-1 or i==5: print("*", end='') else: print(' ', end='') # 表示每层输出后换行 print('')
最终代码如下:
total_level = int(input())
# i控制层数
for i in range(1, total_level+1):
for k in range(total_level-i):
print(' ', end='')
# j控制每层输出的*的个数
for j in range(2*i-1):
# 这里的end=''表示输出不换行
if j == 0 or j == 2*i-1-1 or i==total_level:
print("*", end='')
else:
print(' ', end='')
# 表示每层输出后换行
print('')
5.7、break语句
- 终止循环用的语句。
5.8、continue语句
- continue语句用于for或while循环所嵌套的代码中。
- continue语句用于结束本次循环,继续执行循环的下一个轮次。
5.9、return语句
- return使用在函数,表示跳出所在的函数。
- 注意,break语句只是结束当前循环,而return语句直接跳出了这个函数。
6、函数
6.1、知识点
- 普通传参:
def xxx(args): xxx
- 传入多个的位置参数:
def xxx(*args): xxx
- 传入关键字可变参数:
def xxx(**args): xxx
6.2、函数的传参机制
6.3、函数的递归调用
- 简单来讲,递归就是函数自己调用自己,每次调用时传入不同的值。
- 递归有助于编程者解决复杂问题,同时可以让代码变得简洁。