一:常量和变量
1.python的数据类型
分类:
Number:数字型【整型,浮点型,复数】
String:字符串类型
Boolean:布尔型【True,False】
None:空值
list:列表
tuple:元祖
dict:字典
set:集合
整型:可以处理任意大小的数字,支持二进制
浮点型:在计算机的底层,浮点型表示采用的是科学计数法【123.456————》1.23456e2】
复数:数学上:【a+bi————》a+bj】
字符串:是以单引号或双引号括起来的任意的文本:【"a"】
布尔值:只有两个值:True和False,关系运算符和逻辑运算符的运算结果一般都是布尔值
2.常量
定义:在程序运行的过程中,值永远不会发生变化的标识符
代码演示:
print(2)
print("hello")
print(True)
print(3+5j)
3.变量
3.1概念
定义:在程序运行的过程中,值可以随时发生改变的标识符
作用:存储数据,参与运算
语法:标识符=值
说明:标识符被称为变量名【引用】,第一次给变量的值称为初始值,=被称为赋值运算符
注意:
a.变量名需要遵守标识符的定义规则和规范
b.变量名的定义会在内存中开辟一个空间,然后在这个空间中存储数据【因为python是动态数据类型的语言,所 以在这个空间中存储的是什么类型的数据无法确定】
3.2使用
代码演示:
#1.定义一个整型的变量
age=18
print(age)
str1="hello"
#变量的值可以随时发生变化
str1="abc"
#变量的值发生在改变的过程中类型也可以发生改变【python是弱类型的语言,动态数据类型的语言,容错性比较高】
str1=True
print(str1)
#2.变量的命名
student_name="zhangsan"
studentName="xiaoming"
#3.一个变量如果未被定义,则无法使用
#4.变量的好处:存储数据,可以应对需求发生改变的情况【提高了代码的可维护性】
print(20)
print(20+4)
print(20*10)
n=20
print(n+4)
print(n*10)
#5.特殊情况:一般情况下,如果一个变量在代码运行的过程中,不想让它的值发生变化则可以通过变量的命名来区别
#解决办法:变量名遵循常量命名法【字母全部大写,不同的单词之间使用下划线分隔】
NUM=3
3.内存中的变量
思考一个问题:变量在内存中开辟了空间,内存如何释放?
手动释放内存和自动释放内存
age=18
说明:定义一个变量,变量名为age,初始值为18,换种说法就是,引用age指向了18
当没有变量名或者引用指向了一个实体的时候,则这个实体被当作垃圾,只能等待系统的回收机制回收它,达到了内存的释放,以便于下次重复使用
代码演示:
name1="叶良辰"
name2=name1
print(name1)
print(name2)
name1="jack"
print(name1)
print(name2)
3.4删除变量
当变量被删除以后,变量将无法再使用,相当于该变量未被定义
语法:del 变量名
代码演示:
#6.删除变量
number=90
print(number)
del number
print(number)
3.5总结
特点:
a.变量的值是可以随时该百年的
b.变量的使用需要在内存中开辟空间
c.变量的意义是为了存储和处理生活中的可变参数
3.6变量的类型转换
int(xxx):将一个数值或者字符串转换成int
float(xxx):将一个数值或者字符串转换成float
str(xxx):将一个数字类型转换成str
代码演示:
num1=100
#type():查看变量的数据类型
print(type(num1)) #<class 'int'>
#id():查看变量在内存中的地址【变量的地址在内存中使用十六进制表示,是一串数字】
print(id(num1)) #1715941168
#注意;str()可以将任意类型的变量转换成字符串类型
num2=str(num1) #等价于num2="100"
print(type(num2)) #<class 'str'>
num3=int(num2)
print(type(num3))
#注意:将字符串转换成int的时候,必须保证转换之后是完整的数字
str1="123"
print(type(str1))
print(int(str1))
二.输入输出
1.输出print()
作用:将需要显示的信息输出到控制台
代码演示:
#基本用法
#1.打印一个数据
print("hello")
#2.使用一条print语句可以同时打印多个数据,多个数据之间使用逗号隔开
#注意:多个数据之间默认使用空格隔开
print("abc","good",False,10)
#3.可以进行拼接
print(10+20)
print("10+20= ",10+20)
num1=10
num2=20
print("num1+num2= ",num1+num2)
#高级用法
#print的完整写法:print(values...,sep=" ",end="\n",file=sys.stdout,flush=False),
#分隔符,结束符,需要输出到的位置,是否需要刷新
#1.values
print("good"*5)
#"good"
#需要对特殊的符号进行转义:告诉编译器,特殊符号需要使用原来的含义——————》 \
print("\"good\"")
#字符串的拼接,此处的+被称为拼接运算符,只能是字符串之间的拼接
print("good"+"day")
#2.sep:设置分隔符,默认情况下使用空格
print("a","b","c",sep="*")
#3.end;设置换行符,默认情况下为\n
#在python3.x中,如果不想要换行,可以设置end=""
print("aaa",end="%")
print("bbb",end="%")
#4.file:表示将语句打印到哪个地方,默认情况下输出到控制台
#flush;提高写入文件的效率
#注意:如果向一个文件中写入内容,该文件不存在,就会自动创建
f=open("text.txt","w")
print("hello",file=f,flush=True)
2.输入input
#从外部【控制台】获取数据,给变量赋值,跟print正好是一个相反的过程,input输入的都是str类型
#代码演示:
#print("请输入你的姓名:")
#从控制台获取数据
#当代码执行到input的时候程序会被阻塞,等待用户的输入
#当用户输入完毕,按下回车键的时候,表示输入完成
#name=input("请输入你的姓名:")
#print(name)
#需求:根据用户输入的年龄计算还能够活多少年?假设age=80
#注意;通过input从控制台获取的数据全部是str
age=input("请输入你的年龄:")
deathAge=80
print(deathAge-int(age))
print("还可以活",deathAge-int(age),"年")
print("还可以活"+str(deathAge-int(age))+"年")
#练习:从控制台输入两个数,计算乘积
num1=input("请输入第一个数:")
num2=input("请输入第二个数:")
num1=int(num1)
num2=int(num2)
print("num1*num2= ",num1*num2)
三.运算符与表达式【第一部分】
1.表达式
表达式指的是由操作数和运算符组成的一句代码或者语句
作用是:表达式可以用来求值,用来给变量赋值
举例:1+3-2
result=1+3-2
2.运算符
2.1算术运算符
+ - * / %【求余,取模】
代码演示:
num1=5
num2=3
print(num1+num2)
print(num1-num2)
print(num1*num2)
print(num1/num2)
print(num1%num2) #2
print(num1**num2) #125
print(num1//num2) #1
#注意:在计算机的底层也是通过补码的形式处理数据的
#思考问题;求幂运算符的优先级在算术运算符中高于乘法运算符
print(2**5*3) #96
print(2*5**3) #250
print((2*5)**3) #1000
2.2赋值运算符
简单赋值运算符:= 注意:先运算=右边的,再将运算的结果赋值给=左边的变量
复合赋值运算符:+= -= *= /=【算数运算符和简单赋值运算符之间的组合】
代码演示:
#简单赋值运算符
num1=10
num2=num1+10
print(num2)
#复合赋值运算符
#工作原理:用变量原来的值进行计算,然后重新赋值给变量本身
n1=10
n1+=20 #等价于n1=n1+20
print(n1)
2.3关系【条件,比较】运算符
== !=【不等于】< > <= >=
注意:关系运算符运算的结果都是布尔值,成立则为True,不成立则为False
代码演示:
m=10
n=20
print(m==n)
print(m!=n)
print(m<n)
print(m>n)
print(m<=n)
print(m>=n)
四.if分支语句
python中语句的分类:顺序结构,分支结构,循环结构
1.简单if语句【单分支】
语法:
if 表达式:
语句
工作原理:当程序执行到if语句的时候,首先判断表达式的值,如果表达式的值为真,则执行缩进的语句,反之,则跳过整个if语句继续执行后面的语句
代码演示:
import random
num1=50
num2=60
if num1!=num2:
num1=100
print(num1)
#练习:模拟彩票【随机获取一个数,从控制台输入一个数,比较两个数,如果相等,则说明中将】
#第一步:先导入random
#第二步:在0-99之间获取随机数
res=random.choice(range(100))
print("获取到的随机数是:",res)
num=int(input("请输入一个数:"))
if res==num:
print("恭喜你中奖了")
2.if-else语句【双分支】
语法:
if 表达式:
语句1
else:
语句2
工作原理:当程序执行到if语句的时候,首先判断表达式的值,如果表达式的值为真,则执行缩进的语句1,反之,则执行语句2
本质:实现了二选一的操作
代码演示:
#需求:从控制台输入一个数,判断该数是否为偶数
num1=int(input("请输入一个数:"))
if num1%2==0:
print("是偶数")
else:
print("是奇数")
#练习:根据年龄的不同打印不同的内容
age=20
if age>=18:
print("成年")
else:
print("未成年")
3.if-elif-else语句【多分支】
语法:
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式3:
语句3
。。。。。。
else:
语句n
工作原理:当程序执行到if语句的时候,首先判断表达式1的值,如果表达式1的值成立,则执行语句1,整个if-else语句结束,如果表达式1的值不成立,则接着判断表达式2的值。。。。。。
如果所有的表达式值都不成立,则执行else后面的语句n
本质:实现了多选一的操作【注意:不管其中的几个表达式成立,都只会执行其中的一个分支】
代码演示:
age=int(input("请输入年龄;"))
if age<0:
print("输入有误")
elif age<=3:
print("婴儿")
elif age<=18:
print("未成年")
elif age<=50:
print("成年")
elif age<=120:
print("老年")
else:
print("千年老妖怪")
4.三者之间的区别
代码演示:
n=3
#多分支
if n>1:
print("a")
elif n>2:
print("b")
elif n>3:
print("c")
#a
#单分支
if n>1:
print("a")
if n>2:
print("b")
#ab
#双分支
if n>3:
print("c")
else:
print("d")
#d
5.嵌套if语句
本质:在一个if语句中可以书写其他的if语句
语法:
if 表达式1:
语句1
if 表达式2:
语句2
工作原理:只有当表达式1和表达式2同时成立的时候,语句2才有被执行的机会
代码演示:
m=2
n=3
if m<5:
print("成立1")
if n>5:
print("成立2")
注意:从语法角度来说,嵌套的层数没有限制,但是,从代码的可读性来说,一般情况下,嵌套的层数不超过3层