第一章
一.注释
①单行注释
以“#”开头
②多行注释
以三个单引号/双引号开头
③中文编码声明注释
在文件开头加上中文声明注释,用以指定源码文件的编码格式
#coding:gbk
二.运算符
☝加——"+“
☝减——“-”
☝乘——“*”
☝除——“/"
☝取商——"//"
☝取余数——"%"
☝幂——"**"
三.输出函数
1.print()函数的使用
(1)print()函数可以输出哪些内容
a.print()函数输出的内容可以是数字
b.print()函数输出的内容可以是字符串
c.print()函数输出的内容可以是含有运算符的表达式
(2).print()函数可以将内容输出目的地
a.显示器
b.文件
(3)print()函数的输出形式
a.换行
b.不换行
#数字
print(520)
#字符串
print('Helloworld')
#含运算符的表达式
print(1+3)
#将数据输出到文件中,注意点1.所指定的盘符存在 2.使用file=fp
fp=open('D:/text.txt','a+')#a+:如果文件不存在就创建,存在就在文件内容的后面继续追加
print('Helloworld',file=fp)
fp.close()
#不进行换行输出(输出内容在一行中)
print('hello','world'.python')
四.转义字符
1.什么是转义字符
反斜杠+想要实现的转义功能首字母
2.为什么需要转义字符
当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义(转义一个含义)
反斜杠:\\
单引号: \'
双引号:\"
3.当字符串出中包含换行、回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转义字符当字符串中包含换行
回车,水平制表符或退格等无法直接表示的特殊字符时,也可以使用转文字符
换行:\n
回车:\r
水平制表符:\t
退格:\b
#转义字符
print('hello\nworld')
print('hello\tworld')
print('hello\rworld')#world会覆盖hello
print('hello\bworld')#\b是退一个格,o会被覆盖
#原字符:不希望字符串的转义字符起作用,就使用原字符。原字符就是在字符串之前加上r或R
print(R'hello\nworld')
4.注意事项
最后一个字符不能是\,但可以是\\
五.标识符和保留字
1.保留字(下面代码可用来寻找python中的保留字)
import keyword
print(keyword.kwlist)
2.标识符(变量,函数,类,模块和其他对象的起的名字就叫标识符)
♠规则
●字母,数字,下划线
●不能以数字开头
●不能是保留字
●严格区分大小写
六.变量
1.概述
内存中带标签的盒子
2.变量的组成
●标识:表示对象所存储的内存地址,使用内置函数id(obj)来获取
●类型:表示的是对象的数据类型,使用内置函数type(obj)来获取
●值:表示对象所储存的具体数据,使用print(obj)可以将值打印出来
3.变量名=变量值(可多次赋值,输出最后新值)
4.变量的命名(有意义)
☆驼峰式
1)大驼峰
2)小驼峰
☆下划线
★如何寻找不能用来命名的名词(保留字)
import keyword
print(keykord.keylist)
七.数据类型
7.1常用的数据类型
- 整数类型→int→98
- 浮点类型→float→3.14159
- 布尔类型→bool→Ture,False
- 字符串类型→str→‘ABCD’
#整数类型
#1.可以表示,正数,负数,0
n1=90
n2=-76
n3=0
print(n1,type(n1))#90<class 'int'>
print(n2,type(n2))#-76<class 'int'>
print(n3,type(n3))#0<class 'int'>
#整数可以表示为二进制,十进制,八进制,十六进制
print('十进制',118)#十进制 118
print('二进制',0b10101111)#二进制 175
print('八进制',0o176)#126
print('十六进制',0x1EAF)#7855
#浮点类型:由整数部分和小数部分组成
a=3.14159
print(a,type(a))
#浮点数存储不精确
n1=1.1
n2=2.2
print(n1+n2)#3.3000000000000003
#导入模块decimal来解决以上问题
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))#3.3
'''
布尔类型
1.用来表示真或假的值
2.Ture表示真,Flase表示假
3.布尔值可以转化为整数
Ture→1
Flase→0
'''
print(Ture+1)#2
print(Flase+1)#1
'''
字符串类型
1.又被称为不可变的字符序列
2.可以使用单引号'',双引号"",三引号''' '''或""" ""'来定义
3.单引号和双引号定义的字符串必须在一行
4.三引号定义的字符串可以分布在连续的多行
'''
str1='人生苦短,努力加油'
str2="人生苦短,努力加油"
str3='''人生苦短,
努力加油'''
print(str1)
print(str2)
print(str3)
7.2数据类型转换
name='张三'
age=20
print(type(name),type(age))# str int 说明name和age 数据类型不同
#print('我叫'+name+'今年'+age+'岁') 当将str类型和int类型连接在一起时,报错,解决方案:数据类型转换
print('我叫'+name+'今年'+str(age)+'岁')#我叫张三,今年20岁
#str()将其他类型转化为str类型
a=10
b=198.8
c=Flase
print(str(a),str(b),str(c))
#int()将其他类型的转成int类型
s1='128'
f1=98.7
s2='76.77'
ff=True
s3='hello'
print(int(s1),type(int(s1)))#将str类型转化为int类型,字符串为数字
print(int(f1),type(int(f1)))#将float类型转成int类型,截取整数部分,舍去小数部分
#print(int(s2),type(int(s2))) 将str类型转化为int类型,报错,因为字符串为小数串
print(int(ff),type(int(ff)))
print(int(s3),type(int(s3)))#报错,将str类型转化为int类型,必须是数字且是整数
#float()将其他类型的转成float类型
s1='128'
s2='76'
ff=True
s3='hello'
i=98
print(float(s1),type(float(s1)))
print(float(s2),type(float(s2)))
print(float(ff),type(float(ff)))
#print(float(s3),type(float(s3))) #字符串中的数据如果是非数字串,则不允许转换
print(float(i),type(float(i)))
八.输入函数input()函数
8.1.input()函数的介绍
1.1 作用:接受来自用户的输入
1.2 返回值类型:输入值的类型为str
1.3 值的存储: 使用=对输入的值进行存储
8.2.input()函数的基本使用
present=input('大声想要什么礼物呢')
print(present)
8.3.input()函数的高级使用
#从键盘录入两个整数,求其和
a=input('请输入一个加数')
a=int(a)
b=input('请输入另一个加数')
b=int(b)
print(a+b)
九.运算符
(一)算术运算符
☝加——"+“
☝减——“-”
☝乘——“*”
☝除——“/"
☝取商——"//"
☝取余数——"%"
☝幂——"**"
运算符 | 表示 | 例子 | 结果 |
+ | 加 | 1+1 | 2 |
- | 减 | 1-1 | 0 |
* | 乘 | 2*4 | 8 |
/ | 除 | 1/2 | 0.5 |
% | 取余(一正一负要公式) | 9%4 | 1 |
余数=被除数-除数*商 | 9%-4 9-(-4)*(-3) | -3 | |
** | 幂运算 | 2**3 | 8 |
整数(一正一负向下取整) | 11//2 | 5 | |
// | 整数(一正一负向下取整) | 9//-4 | -3 |
整数(一正一负向下取整) | -9//4 | -3 |
(二)赋值运算符
1.运算顺序
从右到左
2.支持链式赋值
a=b=c=20
3.支持参数赋值
☝ += a += 3 相当于 a = a + 3
☝-= b -= 4 相当于 b = b - 4
☝*= c *= 5 相当于 c = c * 5
☝/= d /= 6 相当于 d = d / 6
☝%= e %=7 相当于 e = e % 7
4.支持系列解包赋值
a,b,c=20,30,40
交换两个变量的值
a,b=10,20
print('交换之前:',a,b)
#交换
a,b=b,a
print('交换之后:',a,b)
(三).比较运算符
- 大于 >
- 小于 <
- 大于等于 >=
- 小于等于 <=
- 相等 ==
- 不相等 !=
一个变量由三部分组成:标识,类型,值。==比较的是值,比较对象的标识符用is
a=10
b=10
print(a==b)#Ture 说明a和b值相等
print(a is b)#Ture 说明a和b id 标识相等
lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2)#Ture 说明lst1和lst2值相等
print(lst1 is lst2)#False 说明lst1和lst2 id 标识不相等
print(lst1 is not lst2)#Ture 说明lst1和lst2 id 标识不相等
(四).布尔运算符
运算符 | 运算数 | 运算结果 | 备注 | |
and (且) | Ture | Ture | Ture | 当两个运算数都为Ture时,运算结果才为Ture |
Ture | False | False | ||
False | Ture | |||
False | False | |||
or (或者) | Ture | Ture | Ture | 只要有一个运算数为Ture时,运算结果就为Ture |
Ture | False | |||
False | Ture | |||
False | False | False | ||
not (布尔类型的取反) | Ture | False | 如果运算数为Ture,运算结果为False | |
False | Ture | 如果运算数为False,运算结果为Ture |
(五).位运算符
将数据转成二进制进行计算
- 位与&——对应位数都是1,结果数为才是1,否则为0
- 位或|——对应位数都是0,结果数为才是0,否则为1
- 左移位运算符(<<)——高位溢出舍弃,低位补0(向左移动一位相当于乘以2,向左移动两位乘以4)
- 右移位运算符(>>)——低位溢出舍弃,高位补0(向右移动一位相当于除以2)
print(4&8) #0
print(4|8) #12
print(4<<1) #8 向左移动一位
print(4<<2) #16 向左移动两位
print(4>>1) #2
图示
(六)运算符的优先级
- 算术运算符(先算乘除,再算加减,有幂运算先算幂运算)
- 位运算
- 比较运算符
- 布尔运算符
- 赋值运算符
10.顺序结构
程序从上到下顺序的执行代码,中间没有任何的判断和跳转,直到程序结束
11.对象的布尔值
(1).python一切皆对象,所有对象都有一个布尔值,获取对象的布尔值使用内置函数bool()
(2).以下对象的布尔值为False:
- False
- 数值()
- None
- 空字符串
- 空列表
- 空元组
- 空字典
- 空集合
#测试对象的布尔值
print(bool(False)) #False
print(bool(0)) #False
print(bool(0.0)) #False
print(bool(None)) #False
print(bool('')) #False
print(bool("")) #False
print(bool([])) #False 空列表
print(bool(list())) #False 空列表
print(bool(())) #False 空元组
print(bool(tuple())) #False 空元组
print(bool(dict())) #False 空字典
print(bool({})) #False 空字典
print(bool(set())) #False 空集合
12.选择结构
12.1单分支结构
12.1.1中文语义
如果...就...
12.1.2语法结构
if 条件表达式 :
条件执行体
12.1.3流程图
12.2双分支结构
12.2.1中文语义
如果...不满足...就...
12.2.2语法结构
if 条件表达式 :
条件执行体1
else:
条件执行体2
12.2.3流程图
12.3多分支结构
12.3.1中文含义
- .....是......? 不是
- .....是......? 不是
- .....是......? 不是
- .....是......? 不是
- .....是......? 是
12.3.2语法结构
if 条件表达式1 :
条件执行体1
elif 条件表达式2:
条件执行体2
elif 条件表达式N:
条件执行体N
[else:]
条件执行体N+1
12.3.3流程图
12.4嵌套if
12.4.1语法结构
if 条件表达式1:
if 内层条件表达式:
内层条件执行体1
else:
内层条件执行体2
else:
条件执行体
12.5条件表达式
条件表达式是if...else的简写
12.5.1语法结构
x if 判断条件 else y
12.5.2运算规则
如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式的返回值为False
13.循环结构
13.1while循环
13.1.1基本语法
初始条件 #通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数) :
条件完成时,所完成任务1
条件完成时,所完成任务2
条件完成时,所完成任务3
......
处理条件(计数器 + 1)
注意:while语句以及缩进部分是一个完整的代码块
# 1.定义一个整数变量,记录循环次数
i = 1
# 2.开始循环
while i <= 5 :
# 1>希望在循环内执行的代码
print(" Hello future")
# 2>处理计数器
i = i + 1
13.1.3死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续进行,程序无法终止
13.1.4计数方法
- 自然计数法(从1开始)——符合人们通常习惯
- 程序计数法(从0开始)——几乎所有程序语言都选择从0开始计数
13.1.5循环计算
#1.定义一个整数变量记录循环次数
i=0
#定义最终结果变量
sum = 0
#开始循环
while i<=100:
if i%2==0:
sum += i
#处理计数器
i+=1
print(sum)
14.break和continue
break和continue是专门在循环中使用的关键字
- break 当一条件满足时,退出循环,不再执行后续的代码
- continue 当一条件满足时,不执行后续的代码
break和continue只针对当前所在循环有效
15.while循环嵌套
15.1循环嵌套
while 条件1 :
条件完成时,所完成任务1
条件完成时,所完成任务2
条件完成时,所完成任务3
......
while 条件2 :
条件完成时,所完成任务1
条件完成时,所完成任务2
条件完成时,所完成任务3
......
处理条件2
处理条件1