一、Python中的数据类型
计算机顾明思议就是可以做数学运算的机器,因此计算机理所当然的可以处理各种数据,但是计算机能处理的远远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据需要定义不同的数据类型
Number【数字:整型int,浮点型[小数]float,复数类型complex】
String【字符串】
Boolean【布尔类型】 True真(1), Flase假(0)
None【空值】
list【列表】 类似c语言的数组
tuple【元组】 不可改变的列表
dict【字典】
set【集合】(了解)
bytes【字节】
二、常量和变量
1.常量
定义:在程序运行的过程中,值永远不会发生改变
print(2) print(2.3) print(3+5) print("hello") print(True)
2.变量
2.1. 概念
定义:程序在运行的过程中,值可以随时发生改变
作用:存储数据,参与运算
2.2. 定义
定义格式:变量名 = 初始值
说明:
变量名: 对于每一个变量,需要给他定义一个名称,定义的规则就是标识符的规则
=: 赋值运算符【主要是为了给变量进行赋值】
初始值:第一次给变量赋予的值,在程序运行的过程中,这个值可以随时发生改变,同时确定了变量的数据类型
举例:age = 10
age是变量名【引用】,10是初始值Python中的变量的定义和数学中变量的定义完全一致
x = 3 y = 4 print(x * y) x = "abc" # print(x) # 【扩展】 # Python被称为弱类型语言,动态改变变量的数据类型,容错性比较高 # Java被称为强类型语言,只要变量被定义,它的数据类型将不能发生任何的改变 # 在Java中定义变量: # int x = 3 # x = "hello" # 报错
2.3. 变量的使用
代码演示:
#1 #需求:定义一个变量,名字为age,类型为整型,初始值为18 age = 18 print(age) #需求:定义一个变量,名字为str,类型为string,初始值为hello str = "hello" #布尔型 b = True #2 #变量在程序运行的过程,值可以随时发生改变 str = "abc" #3 #关于变量的命名 student_name = "zhangsan" studentName = "zhangsan" #4 #注意:变量必须先定义,然后再使用 #print(num) #NameError: name 'num' is not defined #5 #类似于变量的定义,将常量定义出来 print(10) print(10 + 4) print(10 * 8) #注意:命名规范,遵循常量命名法:字母全部大写 NUM1 = 10 print(NUM1) print(NUM1 + 4) print(NUM1 * 8) #NUM1 = 20 #6 #如果一个表达式需要被重复使用,每次都计算比较麻烦,可以先将表达式的值用一个新的变量保存起来 x = 3 y = 4 print(3 * 4) print(x * y) print(x * y) print(x * y) result = x * y print(result) print(result)
2.5.删除变量
注意:当定义一个变量,然后删除,相当于这个变量未被定义
代码演示:
#定义变量 num = 66 print(num) #删除变量 #del #变量被删除之后则相当于这个变量未被定义 del num print(num)
2.6.关键字
关键字: 在Python中,已经被赋予了特殊含义的英文单词
import keyword print(keyword.kwlist)
python中的关键字共33个:
False class finally is return None continue for lambda try
True def from nonlocal while and del global not with
as elif if or yield assert else import pass
break except in raise
2.7.标识符
标识符: 在Python程序中自定义的一些英文单词, 如:变量名,函数名
定义合法标识符的规则:
a.只能由数字,字母,下划线组成,不可以是其他的特殊字符【%,&,*,空格等】
b.开头不能是数字
c.不能是关键字
d. 严格区分大小写 例如: age和Age是两个不同的标识符
定义标识符的规范:
a. Python官方要求:全部用小写字母,不同单词之间使用下划线分隔 stu_score
遵循驼峰命名法【不同的单词之间使用首字母大写的方式进行分隔】,小驼峰,大驼峰
例如:stuScore StuScore
b.尽量做到见名知意
【注意:规则和规范的区别】
作用:给变量,函数等命名,为了进行区分
练习:判断下面标识符合法是否
xiaoming 合法
$abc 不合法 ,有特殊字符
abc_hello 合法
1score 不合法,数字不能开头
score123 合法
扩展:
其他标识符的命名规则:
常量: 常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL
函数&方法: 函数名应该为小写,可以用下划线风格单词以增加可读性。如:my_function,my_example_function。
文件名: 全小写,可使用下划线
包: 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入
模块: 与包相同
类: 总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线
全局变量: 对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
特定命名方式: 主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。
2.8. 特点
a.值是随时可以改变
b.使用变量必须在内存中开辟空间
c.变量可以存储可变数据
2.9.意义
计算机存在的意义就是为了解决生活中的一些数据,这些用变量存储
三、输入输出
1.print输出
作用:将一些特定的数据输出到屏幕上【调试工具】
代码演示:
#简单用法:每次只输出一个数据,任何类型都可以 print(10) print("hello") #可以通过一条print输出多个数据,使用逗号隔开,最终得到的结果将逗号识别成了空格 print(10,"hello") x = 3 y = 4 print("x + y = ",x + y)
2.input输入
作用:可以将外部的值作为程序中变量的值使用【从控制台获取值】
代码演示:
#注意:当程序执行到input的时候,程序会停止在这个地方,等待用户的输入, # 当内容输入结束之后,按下enter,此时输入结束 #用户输入的值可以通过变量的形式保存起来 str = input("请输入内容:") print(str) name = input("请输入姓名:") age = input("请输入年龄:") print(name,age) #需求;根据控制台输入的年龄计算还能活多少年 death_age = 100 #注意:通过input获取的数据全部都是字符串 age1 = input("请输入现在的年龄:") print(death_age - age1) #字符串和整型之间的转换 """ int:integer,整型, str:string,字符串 转换 int() 将字符串转换为整型 str() 将整型转换为字符串 float() 将整型或者字符串转换为浮点型【小数】 """ #修改上面的获取结果的语句 print("还可以活",death_age - int(age1),"年") print("还可以活",str(death_age - int(age1)),"年") #练习:从控制台输入两个数,计算两个数的和,并将结果输出 num1 = int(input("请输入第一个数:")) num2 = int(input("请输入第二个数:")) print(num1 + num2) result = num1 + num2 print(result)
四、运算符和表达式
1.表达式
操作数和运算符组成
1 + 3
1 / 2
作用: 表达式可以求值,也可以给变量赋值
2.运算符
2.1. 算术运算符
+ - *【乘法】 /【除法】 %【求余,取模】 **【求幂】 //【取整】
代码演示:
num1 = 5 num2 = 3 print(num1 + num2) print(num1 - num2) print(num1 * num2) print(num1 / num2) #浮点型:1.6666666666666667 默认精度16位 print(num1 % num2) #2 print(num1 ** num2) #5的3次方 print(num1 // num2) #获取浮点数的整数部分 #除了+和-之外,其他的算术运算符都是相同的优先级 #出现优先级,解决办法使用括号 print(2 ** 5 * 3)
2.2. 赋值运算符
简单赋值运算符:= 给一个变量进行赋值
复合赋值运算符:+= -= %= /= ....... 给一个变量进行赋值,同时给变量进行相应的运算
代码演示:
#简单 num1 = 10 #注意:在赋值运算符中,先计算等号右边的表达式,然后将计算的结果赋值给等号左边的变量 num2 = num1 + 10 print(num2) #复合 num3 = 10 num3 += 100 #等价于num3 = num3 + 100 print(num3)
2.3. 关系【条件,比较】运算符
作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】
> < >= <= ==【恒等号】 != 【不等于】
使用场景:if语句,循环
代码演示:
x = 3 y = 5 print(x > y) #False print(x < y) print(x == y) print(x != y) print(x >= y) #False print(x <= y) #True
2.4. 逻辑运算符
and : 与
or: 或
not:非
2.5. 成员运算符和身份运算符
成员运算符:
in, not in
身份运算符:
is, is not
2.6. 位运算符【扩展】
前提:将数字转换为二进制使用
&【按位与】 |【按位或】 ^【按位异或】 ~【按位取反】 << 【左移】 >>【右移】
代码演示:
print(6 & 3) print(6 | 3) print(6 ^ 3) print(~6) print(6 << 2) print(6 >> 2)
五、if语句
1.代码结构
顺序结构:代码从上往下依次执行
分支结构:根据不同的条件,执行不同的语句
循环结构:根据指定的条件,重复执行某段代码
2.分支结构-if语句
2.1简单if语句【单分支】
语法:
if 表达式:
执行语句
说明;要么执行,要么不执行,当表达式成立的之后,则执行语句;如果表达式不成立,则直接跳过整个if语句继续执行后面的代码
注意:表达式为真才执行语句
假:0 0.0 False “” None【空值】
一般情况下,表达式使用都是比较运算符
代码演示:
#单分支 num1 = 50 num2 = 60 #需求:当num1 == num2,则给num1重新赋值为100 #在pYthon中,通过缩进来区分代码块 if num1 != num2: num1 = 100 print(num1) #练习:从控制台输入一个数,判断这个数是否是偶数 num = int(input()) if num % 2 == 0: print(num,"是一个偶数") print(num,"不是一个偶数")
2.2if-else语句【双分支】
语法:
if 表达式:
执行语句1
else:
执行语句2
说明:如果表达式成立,则执行语句1;如果不成立,则执行语句2
代码演示:
#双分支 # 从控制台输入一个数,判断这个数是否是偶数 num = int(input()) if num % 2 == 0: print(num,"是一个偶数") else: print(num,"不是一个偶数") #练习:从控制台输入一个数字,根据数字打印年龄段 age = int(input()) if age >= 18: print("成年人") else: print("未成年人")
2.3if-elif-else语句【多分支】
语法:
if 表达式1:
执行语句1
elif 表达式2:
执行语句2
elif 表达式3:
执行语句3
。。。。。
else:
执行语句n
说明:实现了多选一的操作,会根据不同的条件从上往下来进行匹配,如果匹配上了,则执行对应的语句,然后直接结束整个if-elif语句,但是,如果所有的条件都不成立的话,则执行else后面的语句
注意:不管if-elif-else有多少个分支,都只会执行其中的一个分支
代码演示:
#多分支 #需求:从控制台输入一个数字,根据数字打印年龄段 age = int(input()) if age < 0: print("输入有误") elif age <= 3: print("婴儿") elif age <= 6: print("儿童") elif age <= 12: print("青少年") elif age <= 18: print("青年") else: print("hello")
#练习:根据控制台输入的成绩,输出对应的等级 """ 90以上:优秀 80~90:良好 70~80:还行 70以下:加油吧,少年 """ score = int(input("请输入学生的成绩:")) if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 70: print("还行") else: print("") #容易出现的问题:冒号 中文 空格
2.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") #a if n > 2: print("b") #b #双分支:实现二选一 if n > 3: print("c") else: print("d") #d
2.5嵌套if语句
语法:
if 表达式1:
执行语句1
if 表达式2:
执行语句2
说明:if语句的嵌套,可以在单分支,双分支,多分支之间进行任意组合
代码演示:
score = int(input("请输入学生的成绩:")) if score < 0 or score > 100: print("输入有误") else: if score >= 90: print("优秀") elif score >= 80: print("良好") elif score >= 70: print("还行") else: print("") age = int(input("请输入年龄:")) looks = input("请输入您的相貌:") if age >= 18: if looks == "美女": print("要微信") else: print("略过")
注意:从语法角度来说,嵌套的层数没有任何的限制,但是,为了代码的可读性和可维护性,嵌套层数不要超过3层