# 一、基本数据类型
## 1数字
```bash
int整型
定义:age = 18
用于标识:年龄,等级,身份证号,qq号,个数
float浮点型
定义:salary = 3.1
用于标识:工资,身高,体重
数字型可以做数学运算以及比较大小
a = 10 b = 20 c = a +b c>>>30
x = 10 y = 20 x > y False
```
## 2字符串类型str
```bash
定义:name = 'cookie'
用于标识:描述性的内容,如姓名,爱好,性别,国籍,种族
ps: 外层用双引号,内层就需要用单引号
字符串型可以做‘相加‘和’相乘‘
相加就是字符串的拼接
name = 'Tony' age = '18' name + age 'Tony18'
相乘就相当于把字符串相加了几次
name * 3 'TonyTonyTony'
```
## 3列表类型list
```bash
定义:stu_names=['张三','李四','王五']
使用:列表类型是用索引来对应值,索引代表的是数据的位置,从0开始计数
print(stu_names[0])
‘张三’
print(stu_names[2])
‘王五’
列表可以嵌套,嵌套取值如下
students_info=[['tony',18,['sleep',play]],['jason',18,['play','sleep']]]
print(students_info[1][2][1]) #取出第二个学生的第二个爱好 ‘play’
```
## 4字典类型dict
```bash
定义:person_info={'name':'tony','age':18,'height':185.3}
使用:字典类型是用key来对应值,key可以对值有描述性的功能,通常为字符串类型
person_info={'name':'tony','age':18,'height':185.3}
print(person_info['name'])
'tony'
字典可以嵌套,嵌套取值如下
students=[ {'name':'tony','age':38,'hobbies':['play','sleep']}, {'name':'jack','age':18,'hobbies':['read','sleep']},{'name':'rose','age':58,'hobbies':['music','read','sleep']},]
students[1]['hobbies'][1] #取第二个学生的第二个爱好
‘sleep’
```
## 5布尔bool
```bash
定义:is_ok = True is'nt_ok = False
作用:用来记录真假这两种状态
使用:通常用来当作判断的条件,我们将在if判断中用到它
隐式布尔值
所有数据类型的值都可以当作隐式布尔值去用,其中0、空、None三者的布尔值为False,其余为True
while 1 = while True
```
# 二、为何要分类型
```bash
数据是食物的状态,食物的状态是分为多种多样的,对应着就应该用不同类型的数据去记录
```
# 三、与用户交互
```bash
接受用户的输入
name = input("请输入你的用户名:") #name = Tony
print(name)
格式化输出
msg="my name is %s my age is %s" % ("Tony",18)
```
# 四、运算符
## 1.算数运算符
```bash
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 // 3) #等于3 取整数
print(10 % 3) #等于1 取余数
```
## 2.比较运算符
```bash
print(10 == 10)
print(10 > 10)
print(10 >= 10)
print(10 != 10) !=不等于
比较使用的参数必须是同类型之间相比
```
## 3.赋值运算符
```bash
增量赋值
age = 10
age = age+1 #或者 age += 1
print(age)
11
链式赋值
x=y=z=10
交叉赋值
x = 10
y = 20
temp = x
x = y
y = temp
或者
x,y = y,x
解压赋值
salary = [1.1,2.2,3.3,4.4]
a,b,c,d=salary
print(a,b,c,d) #取全部值
print(a,b,c,*_) #取前三个值
```
## 4.逻辑运算符
```bash
not:代表把紧跟其后的条件结果取反
print(not 10 > 3)
False
and:连接左右两个条件,左右两个条件必须同时成立,最终结果才为True
or:连接左右两个条件,左右两个但凡有一个成立,最终结果就为True
优先级:not>and>or
```
# 五、流程控制之if判断
## 1.if判断的完整语法
```bash
if 条件1:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
elif 条件3:
代码1
代码2
代码3
...
else:
代码1
代码2
代码3
```
## 2.单分支
```bash
if 条件1:
代码1
代码2
代码3
```
## 3.双分支
### 3.1
```bash
if 条件1:
代码1
代码2
代码3
else:
代码1
代码2
代码3
```
### 3.2
```bash
if 条件1:
代码1
代码2
代码3
elif 条件2:
代码1
代码2
代码3
```
## 4.多分支
### 4.1单分支案列
```bash
# age=22
# height=170
# weight=100
# gender="female"
# print("start...")
#
# if age > 16 and age < 26 and height > 160 and gender == "female":
# print("开始表白。。。")
#
# print('end...')
```
### 4.2双分支案列
```bash
age=18
# height=170
# weight=100
# gender="female"
# print("start...")
#
# if 16 < age < 26 and height > 160 and gender == "female":
# print("开始表白。。。")
# else:
# print("阿姨好。。。")
#
# print('end...')
```
### 4.3if判断嵌套
```bash
# age=18
# height=170
# weight=100
# gender="female"
# is_ok=True
# print("start...")
#
# if 16 < age < 26 and height > 160 and gender == "female":
# print("开始表白。。。")
# if is_ok:
# print("在一起。。。")
# else:
# print("我们不太合适。。。")
# else:
# print("阿姨好。。。")
#
# print('end...')
```
### 4.4if多分支
```bash
# 如果:成绩>=90,那么:优秀
#
# 如果成绩>=80且<90,那么:良好
#
# 如果成绩>=70且<80,那么:普通
#
# 其他情况:很差
score = input("your score: ") # score="99"
score = int(score)
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 70:
print("普通")
else:
print("很差")
```