学习python3.8
昨日内容回顾
流程控制
也就是控制事物的执行流程
主要分为三大类
顺序结构
顺序结构就是从上往下依次按顺序执行
分支结构
按照某些条件的判断做出不同的反应
循环结构
按照某个成立的条件循环做一些事情知道条件不满足是会停止
必知必会
代码的缩进
在python中使用缩进来表示代码的从属关系
也并不是所有的代码都可以有子代码
一个代码有多个子代码的时候这些子代码必须保持相同的缩进
代码的结尾如果有冒号下一行代码必须缩进而且这个有冒号代码必须拥有子代码
分支结构
# if分支
if分支就是条件成立后执行的子代码
代码示例
age = 28
if age > 18:
print('你好')
print('你在干嘛')
# if...else结构
if条件:
条件成立后执行的代码块
else:
条件不成立执行的代码块
代码示例
# zqh = 'wyx'
# if zqh == 'wyx':
# print('right')
# else:
# print('wrong')
# if...elif...else结构
if条件1
条件一成立后执行的代码块
elif条件2(可以有多个)
条件一不成立条件二成立后执行的代码块
else:
条件1 2都不成立执行的代码块
代码示例额
while True:
name = input('name')
if name == 'wyx':
print('好好学习')
elif name == 'zqh':
print('天天向上')
else:
print('上号上号')
namewyx
好好学习
name123
上号上号
namezqh
天天向上
name
循环结构
while循环
条件成立之后执行这个条件循环这个代码块循环完本代码之后
再次判断是否循环来来回回直到代码条件无法成立为止
zqh = 18
w = 1
while w < 4:
wyx = input('请输入数字:')
wyx = int(wyx)
if zqh == wyx:
print('right')
else:
print('wrong')
w += 1
请输入数字:1
wrong
请输入数字:1
wrong
请输入数字:1
wrong
$$## while + break
结束本层循环一个break只能结束他所在的那一层循环
#while + continue
结束本次循环回到条件判断处
今日内容概要
作业讲解
# 1.定义真是的年龄
real_age = 真实年龄
# 2.获取用户猜测的年龄
guess_age =input('输入猜测的年龄')
# 3.将字符串类型的数字转换成整型类型的数字
guess_age = input(guess_age)
# 4.比较猜测的年龄和真实年龄
if guess_age > real_age
pirnt('我还有那么大年龄')
# 5.将需要反复执行的代码缩进到while子代码中
while True:
# 6.一旦猜对了 立刻结束循环
break
# 7.定义一个记录用户猜测次数的计数器
guess_count = 1
# 8.判断当前用户到底猜测了几次
if guess_count == 4:
# 9.提示用户已经尝试了三次 是否继续尝试
is_again = input('您已经尝试了三次 是 else:否继续(y/n)>>>:')
# 10.判断用户是否继续
if is_again == 'y':
#11.重置用户尝试的次数
guess_count = 1
else:
#12.直接结束循环
print('下次再来!!!')
break
zqh = 1
while zqh < 4:
real_age = 26
guess_age =input('请输入猜测的年龄')
guess_age = int(guess_age)
if guess_age > real_age:
print('不对不对')
zqh += 1
elif guess_age == 26:
print('是的是的')
break
else:
print('也不对')
zqh += 1
if zqh == 4:
is_again = input('您已经尝试了三次 是否继续(y/n)>>>:')
if is_again == 'y':
zqh = 1
else:
print('下次再来!!!')
while + else
# while与eles连用
如果是正常循环体代码结束会执行else的子代码如果是被break主动结束就不会执行
count = 1
while count < 10:
if count == 4:
break
print(count)
count += 1
else:
print('while循环寿终正寝了!!!')
做一下解释:当count等于4时就会被主动结束所以下边else的子代码就不会被执行了
count = 6
while count < 10:
if count == 4:
break
print(count)
count += 1
else:
print('while循环寿终正寝了!!!')
这里是直接跳过 if count == 4:所以就是没有被break主动结束所以就会执行else的子代码
搞张图
死循环与while的嵌套
# 学习如何搞坏公司的电脑你就搞几个死循环,他就会一直让cpu工作
count = 1
while True:
# while嵌套
while里边套while循环里边套循环
flag = True
while flag:
username = input('username>>>:')
password = input('password>>>:')
if username == 'jason' and password == '123':
print('登录成功')
while flag:
cmd = input('请输入您的指令>>>:')
if cmd == 'q':
print('下次光临')
flag = False
print('正在执行您的指令:%s' % cmd)
else:
print("用户名或密码错误")
for循环
循环执行一些东西for循环可以做到的事情while循环都可以做到x相对于while循环for更简单一般涉及取值都会考虑更为简单的方便的for循环
语法结构 for >变量名> in >for循环对象可以是: # 字符串、列表、字典、元组、集合
for循环的循环体代码
每次执行都会将循环对象中的一个元素赋值给变量名
ps:针对for循环语法结构中的变量名 也应该做到见名知意
如果真的没有合适的名字可以使用常用的变量名i、j、k、v、num(数字)、item...
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar']
# 使用while循环依次打印出列表中所有的元素
# count = 0
# while count < 5:
# print(name_list[count])
# count += 1
# 使用for循环依次打印出列表中所有的元素
# for name in name_list:
# print(name)
# 循环字符串(特殊):依次取出每一个字符
# for i in 'hello world':
# print(i)
# 循环字典(特殊):循环字典只能获取到字典的key value无法直接获取
# userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'}
# for i in userinfo_dict:
# print(i)
# 循环元组
# for i in (11, 22, 33, 44, 55):
# print(i)
# 循环集合:字典与集合内部的元素都是无序的
for i in {11, 22, 33, 44, 55, 66}:
print(i)
range关键字
range方法在python2和python3中有所区分
在python2中range是直接产生一个列表 元素很多的情况下比较占用空间
在python2中有一个(xrange) 其实就是python3里面的(range)
在python3中range相当于哆啦A梦的口袋 不占空间但是可以取出很多数据
在python3中就只有一个range了
# 循环打印0-100
# (正在)while循环
# (数数)count = 0
# while count < 101:
# print(count)
# count += 1
# (因为暂定)for循环
# for i in range(101): # 从0开始到100结束的数据集 顾头不顾尾
# print(i)
"""range其实一个迭代器(后面讲) 用于产生一个数据集合 但是节省空间"""
# 用法1 括号内只写一个数字 默认从0开始 顾头不顾尾
# for i in range(10):
# print(i)
# 用法2 括号内写两个数字 自定义起始位置 顾头不顾尾
# for i in range(1, 10):
# print(i)
# 用法3 括号内写三个数字 第三个数字表示的是等差数列的差值 默认情况下是1
# for i in range(1, 10, 2):
# print(i)
for循环补充
# for+break
break结束本层for循环
# for+continue
continue结束本次for循环 直接开始下一次
# for+else
for循环正常结束之后运行else子代码
"""与while一致"""
for i in range(10):
if i == 3:
continue
print(i)
else:
print('2121edwq')
for i in range(10):
if i == 3:
break
print(i)
else:
print('2121edwq')
# for循环的嵌套(了解一下)
for q in range(1, 10):
for h in range(1, q+1):
print('%s*%s=%s' % (q, h, q*h), end='')
print()
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
Process finished with exit code 0
如何查看数据类型的内置方法
可以借助编程软件的自动提示采用据点符号快速查看
举例:int(整形). float(浮点型). dict(字典). str.(字符串需要全部掌握)
数据类型的内置方法
整形int() int是关键字你想把什么转成数字就用int括号括起来()然后将int方法执行之后的结果赋值给变量
res = int('123')(必须纯数字字符串)
# 将其他机制转换成十进制
二进制0b开头 八进制(0o开头) 十六进制(0x开头)
其他进制转成十进制pirnt(int('0b1100100', 2))
float浮点型
1类型转换
res = float('11.11')
print(res, type(res)) # 11.11
res = float('11')
print(res, type(res)) # 11.0(强制来加小数点)
字符串内置方法
1类型转换
str可以转换所有基本数据类型
str可以转换所有基本数据类型
print(str(11), type(str(11)))(正数)
print(str(11.11), type(str(11.11)))(浮点)
print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))(字符串)
print(str({'name': 'jason'}), type(str({'name': 'jason'})))(字典)
print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))(元组)
print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))(集合)
print(str(True), type(str(True)))(布尔值)
# print(str(11), type(str(11)))
# print(str(11.11), type(str(11.11)))
# print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
# print(str({'name': 'jason'}), type(str({'name': 'jason'})))
# print(str((1, 2, 3, 4)), type(str((1, 2, 3, 4))))
# print(str({1, 2, 3, 4}), type(str({1, 2, 3, 4})))
# print(str(True), type(str(True)))
# zqh = 'hello wyx'
#索引取值
# print(zqh[0])
# # 切片操作3;5的意思是从三索引不包括五顾头不顾尾
# print(zqh[3:5])
# # 步长第三个参数是步长默认1依次取数
# print(zqh[2:9:2]) # 2就是间隔一个区一个
# print(zqh[-1]) # 获取最后一个
# print(zqh[-1:-5:-1])# 第三个参数控制索引方向
# # 统计字符串有多少个
# print(len(zqh)) # len
# 成员运算
# print('yx' in zqh)
# 移除字符串首尾空格
# name = ' zqh '
# print(len(name))
# res = name.strip()
# print(res, len(res))(移除字符串首尾空格)
# name = input('请输入名字')
# name = zqh
# print('我好累')
# name2 ='xx zqhax xx'
# print(name2. strip('x'))(移除xx)strip
# username = input('username>>>>:').strip()
# if username == 'jason':
# print('我想去干饭了!!!')
# 按照指定的字符切割字符串
data = 'jason|123|DBJ'
# print(data.split('|')) # ['jason', '123', 'DBJ']
# name, pwd, hobby = data.split('|') # 解压赋值
print(data.split('|', maxsplit=1)) # ['jason', '123|DBJ']
print(data.rsplit('|', maxsplit=1)) # ['jason|123', 'DBJ']
"""split方法切割完字符串之后是一个列表"""
# maxsplit(参数)(只搞一次)maxsplit=1
总结:代码没有听出来的只有
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下