8/12
今日考题
1.列举python所有基本数据(包括名称,关键字,主要特征)
整型 int # 就是整数 123这种
浮点型 float # 小数 1.23这种’
字符串 str # 描述性的文字居多 上海 这种
列表 list # name = [1,2,3] 中括号
字典 dict # user = {'name' = 'leo'} 大括号 里面内容用K:V键值对
元组(小列表) tuple # name = (1,2,3]) 小括号 里面内容不能由别的代码修改
集合 set # name = {1,2,3} 大括号 里面内容无需不重复
布尔值 bool # True False 只有两种状态,判断是非对错用
2.什么是格式化输出,python中如何实现
通过使用 %s 占位符实现
比如:
info = my name is %s. l'm %s years old.
username = input('您的名字')
age = input('您的年龄')
print (info %s('leo',18))
3.列举你所知道的各种运算符
#计算用
+ - * / **(次方) //(整除)
#增量赋值
x = 1
x = x + 1
等价于 x += 1
#链式赋值
x = 1
y = x
z = x
等价于: x = y = z = 1
#交叉赋值
x = 1
y = 2 """现在要将两者数据对调"""
x , y = y , x
#解压赋值
something = [ 1, 2, 3]
a = something[0]
b = something[1]
c = something[2]
等价于:
a , b , c = something
复习巩固
- 列表
"""
中括号 内部可任意存放元素
元素与元素逗号隔开 可以是任意数据类型
"""
list = [11, 22, 33, 'leo']
print(list[0]) #结果是 11
- 字典
"""
大括号 内部存多个元素
逗号隔开 元素组织形式是K:V 一一对应的键值对
K一般是字符串 V任意
"""
dict = {
'name' = 'leo',
'age' = 18
}
print(dict['name'])
- 布尔值
True
False
用来描述事物对错
是否可行 # 存布尔值的变量名一般用is开头
is_right = True
- 元组
"""
小括号 内部可任意存放元素
元素与元素逗号隔开 可以是任意数据类型
元组内元素绑定关系不能被修改
"""
一定要掌握好内部本质的图例8/11博客
- 集合
"""
大括号 内部存多个元素
逗号隔开 内部元素 无序不重复
"""
- 和用户交互
input
获取到的数据都是字符串类型
print
打印数据
- 格式化输出
用占位符 %s %d
- 基本运算符
增量赋值
x += 1 # x = x + 1
链式赋值
x = y = z = 10 # x = 10 y = x z = x
解压赋值
a,b,c = [11,22,33]
a,*_,b = [1,2,3,4,5,6,7,8,9]
交叉赋值
m,n = n,m
鸡汤
一个人可以走的很快,一群人才能走的更远
选择有时候往往大于努力
内容概要
-
逻辑运算符
-
成员运算符
-
身份运算符
-
流程控制(重点 难点)
if 判断 while循环 for循环
-
数据类型的内置方法(重点)
详细讲解
逻辑运算符
与 and
链接的多个条件必须满足结果才是True
eg:年龄小于20 并且 臂围大于35 并且 体脂低于13
或 or
链接的多个条件有一个满足即可是True
eg:年龄小于20 或者 臂围大于35 或者体脂低于13
非 not
与条件取反
可以理解成是说反话eg:
我超级开心 >>> 我很不开心
"""
上述三个关键字如果混合使用是存在优先级的 但是我们不要考虑优先级
在书写的时候应该通过括号强制规定优先级关系
eg: 先乘除后加减 打破顺序 就加括号
"""
print(1 > 2 and 4 > 1) # False
and链接多个条件只要有一个False结果必False
print(False and 1 < 4 and 5 > 1 and 9 > 6 and 8 > 3 and 7 > 9)
print(1 > 2 or 4 > 1) # True
or链接多个条件只要有一个是True结果必为True
print(False or 1 < 4 or 5 > 1 or 9 > 6 or 8 > 3 or 7 > 9)
print(not True) # False
成员运算符
判断个体(局部)在不在某个群体(整体)内 in
stu_list = ['leo', 'tom', 'kevin', 'nancy']
guess_name = input('name')
print(guess_name in stu_list)
# 输入的名字如果在列表里就会输出True
身份运算
"""
如何查看变量值所在的内存地址
print(id()) 返回一串数字
可以理解成内存的地址
"""
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 13:35:33) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> name1 = '123456789987654321'
>>> name2 = '123456789987654321'
>>> id(name1)
2726097947792
>>> id(name2)
2726097947792
>>> n1 = 'leo ace nancy jason tony'
>>> n2 = 'leo ace nancy jason tony'
>>> id(n1)
2726096951296
>>> id(n2)
2726097969360
>>> n1==n2 # 判断两个变量的值是否相等
True
>>> n1 is n2 # 判断两个变量绑定的内存地址是否相等
False
>>>
"""
两个变量值相等 那么内存地址不一定相等
两个变量内存地址相同 那么值肯定相等
"""
流程控制
流程控制就是控制执行的流程
主要有三种
1.顺序结构
从上往下依次执行(截至目前我们所写的代码都是顺序结构)
2.分支结构
根据条件的不同执行不同的流程
3.循环结构
根据条件循环往复的执行某一个过程
graph LR
A-->B
B --> C
C -->D
这样一步一步执行下来的就是顺序结构
graph LR
A-->B
B --> C
C -->|a<1| D[结果1]
C -->|a>=1| E
E -->|a<10| F[结果2]
E -->|a>10|G[结果3]
这类对于条件出现分叉的就是分支结构
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
这种有向前返回重复的就是循环结构
必备知识
python中通过代码的缩进来表示代码的从属关系
如果上面的代码没有缩进下面的代码缩进了 那下面的代码就从属于上面的代码
下面的代码是否运行要看上面的代码
python中不是所有代码都可以拥有子代码
可以拥有子代码的
if 如果
else 否则
属于同一个关键字的多行子代码必须要保持相同的说缩进量
ps:python中缩进一般推荐4个空格
小技巧当某一行代码结尾出现冒号':' 下面一行必缩进
分支结构
# 如果臂围大于40cm 叫pro
arm_width = 41
if arm_width > 40 :
print('pro')
"""
语法结构
if 条件:
条件成立后执行的子代码
"""
# 如果如果臂围大于40cm 叫pro 否则叫bro
arm_width = 40
if arm_width > 40 :
print('pro')
else :
print('bro')
"""
if 条件:
条件成立执行子代码
else 条件:
条件不成立执行子代码
"""
# 如果:成绩>=90,那么:优秀
# 如果成绩>=80且<90,那么:良好
# 如果成绩>=70且<80,那么:普通
# 如果成绩>=60且<70,那么: 及格
# 如果成绩<60 那么: 挂科
score =
if score >= 90 :
print('A')
elif score >= 80 :
print('B')
elif score >= 70 :
print('C')
elif score >= 60 :
print('D')
elif score < 60 :
print('Fail')
'''
语法结构
if 条件1:
条件一成立 执行
elif 条件2:
条件1不成立条件2成立 执行
elif 条件3:
条件1,2都不成立条件3成立 执行
else :
上述条件都不成立 执行
在同一个分支结构中elif可以有很多个,但是if和else只能有一个
if elif else 连用只有一个子程序会被执行
'''
# if 套嵌 如果臂围小于40叫bro 否则让大佬带我练
# 只会有成功和失败两种情况
is_success = True
arm_width = 41
if arm_width > 40 :
print('大肌霸,带带我')
if is_success:
print('light weight!Baby!')
else:
print('Nobody trains harder than me!Nobody!')
else:
print('一起用')
循环结构
while True :
user_name = input('username>>>:')
password = input('password>>>')
print(user_name , password)
"""
语法结构
while 条件:
条件成立后执行的循环体代码
1.先判断条件是否成立 如果成立
2.执行while循环体代码 代码执行完毕后继续判断条件是否成立
3.如果还成立则继续执行while循环 执行完毕之后继续判断条件是否成立
4.重复2和3直至不成立为止
"""
# 利用while循环打印1——10
count = 1
while count < 11 :
print(count)
count +=1
# 利用while循环打印1——10 跳开7
count = 1
while count < 11 :
if count == 7: #判断count是否等于7 如果等于就不打印
count +=1 # 虽然不打印 但是要加1不然返回去就一直卡在7
continue # 直接跳回循环体条件判断处
print(count)
count +=1
# 利用while循环打印1-10 但是到7之后直接结束循环
count = 1
while count < 11 :
if count == 7 :
break # 结束本层的循环
print(count)
count +=1
"""
break 和 continue 只能影响所在层的while
"""
count = 1
while count < 11:
if count == 7:
while True: # 是7 还要输入一个东西
cmd = input('cmd>>>:')
print(cmd)
if cmd == 'q': # 输入q结束对7的循环但是外面加1的循环还在继续
break
print(count)
count += 1