Python笔记1 基本内容:字符串、数字、判断、循环
1.文章内容:
笔记2 内容: 数据容器:列表、元组、集合、字典
笔记3 内容: 代码容器:函数、对象、模块
笔记4 内容: 数据结构、文件输入和输出
2.使用书籍、教程:《父与子的变成之旅》、《菜鸟教程》 Python3 教程 | 菜鸟教程 ,此文为学习笔记直接引用部分不另做标注;
3.本文完整网络图请戳: Python学习网络图
1.1 变量
▌什么是变量
相当于是一个名字,在Python中并不是把值存在变量中而更像是把名字放在值上。
我们建立三个变量First、Second和Third并分别给它们赋值为5、3和8,这就像给5、3、8三个数值加上了三个标签,之后可以 直接通过标签使用对应的值 ,也可以 把标签从值上取下来再挂到其他值上 。
并且 同一个东西可以有多个标签
#定义一个变量MyTeacher
MyTeacher="Mrs.Goodyear" #给变量赋值为"Mrs.Goodyear"
YourTeacher=MyTeacher #再定义一个变量YourTeacher,让两个变量相等
print(MyTeacher)
print(YourTeacher)
输出结果
"Mrs.Goodyear"
"Mrs.Goodyear"
▌变量命名规则
- 可以由字母、数字、下划线组成;
- 区分大小写;
- 必须以字母或下划线开头,不能以数字开头;
- 不能有空格;
1.2 操作符
会对两边的东西有影响或“操作”的符号
基本操作符:
=:赋值操作符
+:加或连接操作符
*:乘或重复操作符
使用引号(’’或“”)来创建
teacher="Mr.Morton"
2.1 字符串的规则
- 单引号和双引号(’’或“”)在创建的字符串时完全相同;
- 三引号(‘‘‘ ’’’或“““ ”””)可创建多行字符串,也可作为注释使用;
- 字符串不可改变。
2.2 字符串的运算
▌拼接:用 + 号实现
print("cat"+"dog")
输出结果
Catdog
▌重复:用 * 号实现
print("Holle "*6)
输出结果
Holle Holle Holle Holle Holle Holle
2.3 字符串的索引
▌用索引访问字符串中单个元素,相当于复制了这个元素
var1="Holle world"
nvar1= var1[0] #用索引0访问字符串第1个元素
print (nvar1)
输出结果
H
▌用索引访问字符串中的一部分,相当于创建一个原字符串的部分副本
var2="abcdefg" #定义变量赋值为字符串
nvar2=var2[1:5] #用索引1:5,访问字符串第2到5个元素
print (nvar2)
输出结果
bcde
2.4 转义符
需要使用特殊字符时用‘\’来转义符;
常见转义符有:\’表示单引号;\”表示双引号;\\表示反斜杠;\n表示换行;\r表示回车等
print('asd\nfgh')
输出结果
asd
fgh
2.5 自然字符串
在字符串第一个引号前加R或r,字符串内容将按字面意思打印,有转义符也不会发生转义
print(r'asd\nfgh')\n
输出结果
asd\nfgh
2.6 从其他类型转化为字符串
使用函数str()从一个数字(或其他任何类型)创建一个新的字符串;
数字加上引号就变为字符串
c=38.99
d=str(c) #将浮点数转化为整数
c,d
输出结果
(38.99, '38.99')
3.1 操作符
+、-、*、/、=等都是操作符,他们会处理(赋值、检查或改变)符号两边的东西,所操作的东西叫操作数:
▌加+;减-;乘*;除/,与数学中四则运算相同,不做赘述
▌=等号为赋值操作
▌指数
用双星号**表示直指数,3**5= 3^{5}
print(3**5)
输出结果
234
▌取余
用%来计算整数相除的余数
print(7%2)
输出结果
1
▌整除
用//来进行整除运算,整除运算的结果为向下取整,即仅有整数部分,小数部分不进行四舍五入,而是直接舍去
print(7//2)
输出结果
3
▌自增和自减
用+=表示自增1,用-=表示自减1
number=7
number+=1
print("自增结果: ",number)
number-=1
print("自减结果: ",number)
输出结果
自增结果: 8
自减结果: 7
▌E 记法
对于极大和极小的数字Python用E记法显示;
3.8E16等同于 3.8\times10^{16} ;
1.752E-13等同于 1.752× 10^{-13}
3.2 运算顺序
和数学运算顺序一致,指数最优先再乘除后加减,改变运算顺序就用括号()
3.3 数值类型
▌整数(int)没有小数点;
将浮点数转化为整数:使用 int() ,从一个字符串或浮点数创建一个新的整数,int()总是向下取整,实际上就是直接去掉小数部分
c=38.99
d=int(c) #将浮点数转化为整数
c,d
输出结果
(38.99, 38)
▌浮点数(float)包含整数位小数点小数位;
将字符串或整数转化为浮点数:使用 float() ,从一个字符串或整数创建一个新的浮点数
a=24
b='76.3'
c=float(a)
d=float(b)
a,c,b,d #不用print()可以直接显示变量的值
输出结果
(24, 24.0, '76.3', 76.3)
这里只介绍了字符串转化为浮点数而没有介绍字符串转化为整数,是因为int()在使用中非常容易报错,例如字符串'76.3'用int()转化就会报错字符串'76'则不会报错。
▌复数(complex)包含实部和虚部。
3.4 type():可以知道变量的类型
a='44.2'
b=44.3
c=44
type(a),type(b),type(b)
输出结果
(str, float, int)
4.1 测试
决策时,程序要做出测试,查看某个条件是否为真。而每个测试只有两个可能的答案:真(True)或者假(False)
使用 if 关键字来测试条件
if timsAnswer==correctAnswer: #if行末尾有冒号
print("You got it right!") #冒号告诉程序接下来将是一个代码块
score=score+1 #代码块整体缩进4个空格
print("Tanks for playing") #条件为真时执行代码块
4.2 比较操作符
条件测试语句相当于一个疑问句,a是否等于b?a是否大于b?这种疑问句用比较操作符(条件测试操作符)表示
比较操作符有:
==等于,>大于,<小于,!=不等于,>=大于等于,<=小于等于
num1=float(input("Enter the first number:")) #将输入的数值转化为浮点数
num2=float(input("Enter the second number:"))
if num1<num2:
print(num1,"is less than ",num2)
if num1>num2:
print(num1,"is greater than ",num2)
if num1==num2:
print(num1,"is equal to ",num2)
if num1!=num2:
print(num1,"is not equal to",num2)
输出结果
Enter the first number:9
Enter the second number:5
9.0 is greater than 5.0
9.0 is not equal to 5.0
4.3 测试为假时会怎么样
测试为真时会执行接下来的代码块,测试为假时有3种可能:
▌做另一个测试,使用关键字 elif (else if 的简写)让程序再执行另一个测试,if 后面 elif 想要多少就可以有多少
answer=flaot(input("Enter the number from 1 to 15:"))
if answer>=10:
print("You got at least 10!")
elif answer>=5:
print("You got at least 5!")
elif answer>=3:
print("You got at least 3!")
输出结果
Enter the number:5
You got at least 5!
▌做其他工作,使用关键字 else ,else总是出现在 if 和所有 elif 之后,即所有测试都为假时将要执行的工作
answer=flaot(input("Enter the number from 1 to 15:"))
if answer>=10:
print("You got at least 10!")
elif answer>=5:
print("You got at least 5!")
elif answer>=3:
print("You got at least 3!")
else:
print("You got less than 3.")
输出结果
Enter the number:2
You got less than 3.
▌继续,if 块后没有放任何东西程序会执行下一个行代码(如果有)或者结束(如果没有更多代码)
4.4 测试多个条件
▌使用嵌套判断
测试游戏玩家年龄和年级必须年满8岁且三年级以上才能玩
age=float(input("Enter your age:"))
grade=int(input("Enter your grade:"))
if age>=8:
if grade>=3: #年级测试语句嵌套在年级测试语句中
print("You can play this game.")
else :
print("Sorry ,you can't play the game.")
输出结果
Enter your age:18
Enter your grade:3
You can play this game.
▌使用 and ,同时满足几个条件时为真
同样使用上面的例子
age=float(input("Enter your age:"))
grade=int(input("Enter your grade:"))
if age>=8 and grade>=3: #使用and比嵌套更加简洁
print("You can play the game.")
else:
print("You can't play the game.")
输出结果
Enter your age:18
Enter your grade:3
You can play this game.
▌使用 or ,只要满足任意条件就为真
#喜欢的颜色为红、蓝、绿中之一的人才能玩的游戏
color=input("Enter your favorite color:")
if color=="rad" or color=="blue" or color=="green":
print("You are a llowed to play this game.")
else:
print("Sorry,you can't paly the game.")
输出结果
Enter your favorite color:yellow
Sorry,you can't paly the game.
▌使用not,把比较反过来表示反向逻辑
if not (age<8):
与下面的代码:
if age >=8:
含义相同
循环就是让计算机做重复的事
循环主要有两种类型:
- 重复一定次数的循环:称为 计数循环即for循环
- 重复直至发生某种情况时结束,称为 条件循环即while循环
5.1 for循环
5.1.1 循环的执行
for循环会执行一定的次数
for i in [1,2,3,4,5]:
print(i)
输出结果
1
5
循环如何执行
- 变量 i 的值从1开始所以第一次执行print语句打印的变量值为1;
- 对应列表中的每一个值,这个循环会把接下来的指令块中的工作完成一次;
- 每次执行循环时,变量 i 会赋为 列表 中的下一个值。
循环变量名
可以随意取,但约定俗成使用i、j、k
5.1.2 range()函数的功能
给循环变量赋值的列表可以使用range()函数来代替,只需输入起始值和结束值,它就会创建一个可迭代的东西,你可以使用循环来遍历它,其工作方式与使用列表相同,
range()会在结束值之前停止,所以循环变量不会被赋予结束值
for i in range(1,5):
print(i,"times 8 =",i*8)
输出结果
1 times 8 = 8
2 times 8 = 16
3 times 8 = 24
4 times 8 = 32
5.1.3 range()函数的参数
共有三个参数(起始值=0,结束值,步长=1)
▌只有一个参数时:传递的是结束值,起始值使用默认值0 ,步长使用默认值1
for i in range(5):
print(i)
输出结果
1
5
▌第三个参数:步长
for i in range(1,10,2):
print(i)
输出结果
1
9
如果步长为复数则表示反向计数
for i in range(10,1,-1):
print(i)
输出结果
10
2
5.2 while循环
条件循环用一个测试来确定什么时候停止循环,会在满足某个条件时一直保持循环
print("type 3 to continue,anything else to quit.")
someInput=input()
while someInput=='3':
print("Thank you for the 3,Very kind of you.")
print("Type 3 to continue,anything else to quit.")
someInput=input()
print("That's not 3,so I'm quitting now.")
输出结果
type 3 to continue,anything else to quit.
Thank you for the 3,Very kind of you.
Type 3 to continue,anything else to quit.
That's not 3,so I'm quitting now.
5.3 跳出循环
5.3.1 continue 跳出当前迭代,提前进入下次迭代,在for循环和while循环中使用方法相同
for i in range(1,6):
print()
print('i =',i,end="")
print(" Holle ,how ",end="")
if i==3:
continue
print("are you today?")
输出结果
i = 1 Holle ,how are you today?
i = 2 Holle ,how are you today?
i = 3 Holle ,how
i = 4 Holle ,how are you today?
i = 5 Holle ,how are you today?
5.3.2 break 终止循环,直接跳出循环不再计数或放弃等待结束条件
for i in range(1,6):
print()
print('i =',i,end="")
print(" Holle ,how ",end="")
if i==3: