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.一个变量如果未被定义,则无法使用 #print(num) #NameError: name 'num' is not defined #结论:在Python中,代码的执行顺序默认是从上往下依次执行【顺序结构】 #4.变量的好处:存储数据,可以应对需求发生改变的情况【提高代码的可维护性】 print(20) print(20 + 4) print(20 * 10) n = 20 print(n + 4) print(n * 10) #5.特殊情况:一般情况下,如果一个变量在代码运行的过程中,不想让它的值发生改变,则通过变量的命名来区分 #解决办法:变量名遵循常量命名法【字母全部大写,不同单词之间使用下划线分隔】 NUM = 3
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)) #
#id():查看变量在内存中的地址【变量的地址在内存中使用十六进制表示的一串数字】 print(id(num1)) #1807462592 #注意:str()可以将任意类型的变量转换为字符串类型 num2 = str(num1) #等价于num2 = "100" print(type(num2)) # num3 = int(num2) print(type(num3)) #注意:将字符串转换为int的时候,必须保证转换之后是完整的数字 str1 = "123" print(type(str1)) print(int(str1)) str2 = "abc" #print(int(str2)) #ValueError: invalid literal for int() with base 10: 'abc'
1.输出print
作用:将需要显示的信息输出到控制台
代码演示:
#基本用法 #1.打印一个数据 print("hello") #2.使用一条print语句可以同时打印多个数据,多个数据之间使用逗号隔开 #注意:多个数据之间默认使用空格隔开 print("abc",10,"good",False) #3.可以进行拼接 print(10 + 20) print("10 + 20 =",10 + 20) num1 = 10 num2 = 20 print("num1 + num2 =",num1 + num2) #4.可以使用占位符格式化字符串 """ %d:代表整型 %f:代表浮点型 %s:目前代表的字符串 """ #注意:一一对应关系 print("%d + %d = %d" % (num1,num2,num1 + num2)) num3 = 1.23456 print(num3) print("%.2f"%(num3))
#高级用法 #print的完整写法:print(values...,sep=" ",end="\n",file=sys.stdout,flush=False), # 分隔符,结束符,需要输出到的位置,是否需要刷新 #1.values print("good" * 5) #"good" #需要对特殊符号进行转义:告诉编译器,特殊符号需要使用原来的含义 -----》\ print("\"good\"") #字符串的拼接,此处的+被称为拼接运算符,只能是字符串之间的拼接 print("good" + "day") #print("good" + 10) #TypeError: must be str, not int #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)
2.4位运算符【了解】
注意:在计算机的底层按照二进制的方式处理
&【按位与】 |【按位或】 ^【按位异或】 ~【按位取反】 <<【左移】 >>【右移】
代码演示:
print(6 & 3) print(6 | 3) print(6 ^ 3) print(~6) print(6 << 2) print(4 >> 2) print(-6 >> 2)
Python中语句的分类:顺序结构,分支结构,循环结构
1.简单if语句【单分支】
语法:
if 表达式:
语句
工作原理:当程序执行到if语句的时候,首先判断表达式的值,如果表达式的值为真,则执行缩进的语句;反之,则跳过整个if语句继续执行后面的语句
注意:
何为真假
假:False,0 , 0.0 , None ,""或者''
代码演示:
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("是偶数") print("是奇数") #问题:使用单分支判断不严谨,当num1为偶数的时候“是偶数”和“是奇数”都会打印出来 """ 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-elif语句结束;如果表达式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") else: print("d") #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层