day03.08
循环语句while+else:
即:当一个while循环没有被break强制中断,循环执行完毕后开始执行else语句分支下的子代码。如果while循环被强制中断,则else的子程序将无法执行。
其结构为:
eg:
count = 1 while count < 4: print(count) count += 1 else: print('任务结束')
count = 1 while count < 10: print(count) count += 1 if count == 7: break else: print('任务结束')
死循环和while循环的嵌套使用:
死循环:
死循环就是指没有结束条件的循环,并且一直占用计算机的cpu,极大损害计算机硬件。
eg:
number = 1 while True: print(number) number += 1
while循环的嵌套使用:
类似于if分支结构的嵌套,即在while循环的循环代码块当中又存在一个while循环结构,可以嵌套一个或多个while循环结构。
eg:
name = 'Tom' password = 1234 tag = True number = 1 while tag: in_name = input('请输入用户名>>>:') in_pad = input('请输入密码>>>:') password = str(password) if in_name == name and in_pad == password: print('欢迎使用') while number < 4: print(number) number += 1 else: print('任务结束') break else: print('账号和密码错误,再试一次吧') number += 1 if number == 4: print('账户已锁定') break
for循环:
for循环和while功能一样,但是for循环更加的简便,使用频率很高;经常用在循环取值的情况当中。
循环字符串:
一次取出字符串当中的每一个元素,需要注意的是字符串当中的空格也是元素的一种。
for i in 'hello world': print(i)
循环字典:
循环字典的过程当中,只能取出字典当中K:V键值对当中的key,并不能取出具体的value的值。
userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male', 'salary': "20", 'hobby': 'game', 'taller': 'H', 'grade': "A", 'traffic': 'car', 'work': '优秀'} 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): print(i)
循环集合和字典:
循环这两种数据类型的时候需要注意的是,字典和集合内部是无序的,循环取值的结构顺序会发生变化。
for i in {11, 22, 33, 44, 55, 66}: print(i)
for循环的扩展:
for+break、for+continue、for+else其用法和while基本一致。
- for+break:结束本层for循环,退出循环程序
- for+continue:结束本次for循环,直接开始下一次循环程序
- for+else:for循环的循环条件正常执行结束,开始执行else的子程序
range关键字
range用法就是相当于创造出一个数据集合,其表示方法是(a,b,c),相当于数学当中的一个前闭后开的集合,其中a表示集合的开端,b表示集合的末端,c表示取值的时候按公差取值。
默认的情况下,c的值为1。
三种表示方法:
-
range(10):从0取到9
-
range(1,10):从1取到9
-
range(1,10,2):从1取到9,只取其中的奇数部分
for i in range(1, 100, 2): print(i)
number_list = [number for number in range(4)] print(number_list)
爬虫:
通过编写代码,在网络上去爬取我们需要的数据。
eg:
url_demo = 'https://movie.douban.com/top250?start=%s&filter=' for i in range(0, 250, 25): real_url = url_demo % i print(real_url)
数据类型的内置方法:
在编程软件当中利用句点符来进行查看
-
整型int(数字类型)
-
类型转换
把数字型的字符串转换为整型数据。
res = int('123') # 将int方法执行之后的结果赋值给变量res print(res, type(res)) # 输出打印的整型数据,然后显示数据类型
note:整型int只能转换纯数字的数据,带有字母和文字和小数点的无法转换。
-
进制转换:
整型int可以用来进行进制之间的准换:
将十进制转换为二进制、八进制、十六进制:
- 二进制:print(bin(100)) 结果 0b1100100 二进制(0b开头)
- 八进制:print(oct(100)) 结果 0o144 八进制(0o开头)
- 十六进制:print(hex(100)) 结果 0x64 十六机制(0x开头)
将其他进制转换为十进制:
- 二进制:print(int(0b1100100, 2))
- 八进制:print(int(0o144, 8))
- 十六进制:print(int(0x64, 16))
-
浮点型float(数字类型)
类型转换:
res = float('11.11') print(res, type(res)) # 11.11 res = float('11') print(res, type(res)) # 11.0
note:如果整型int的数据进行转换会自动补全小数点和零,同样浮点型的类型转换只能支持纯数字和小数点数字,字母和其他的字符串类型不能转换。
-
字符串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)))
字符串str当中的内置功能:
-
索引取值
name = 'Tom kelusi' print(name[6])
-
切片操作
name = 'Tom kelusi' print(name[2:6])
-
步长
name = 'Tom kelusi' print(name[2:9:2]) # 第三个参数是步长,如果不写默认是1,括号内规则都一样,都是前闭后开
-
统计字符串当中的字符个数
name = 'Tom kelusi' print(len(name)) # 统计字符串当中的字符个数,空格也算一个字符
-
成员运算
name = 'Tom kelusi' print('l' in name) # 判断单个字符是否在某个群组数据内
-
移除字符串首尾指定的字符
name = '***Tom kelusi****' res = name.strip('*') # 移除字符串首位的指定的字符,如果未指定,则默认为空格字符 name1 = res print(name1)
-
按照指定的字符切割移除字符串
data = 'jason|123|DBJ' print(data.split('|')) # 切割指定的字符|
作业:
name = 'Tom' password = 1234 tag = True number = 1 back = 'exit' choose = 'y' while tag: in_name = input('请输入用户名>>>:') in_pad = input('请输入密码>>>:') password = str(password) res1 = in_name.strip() res2 = in_pad.strip() if res1 == name and res2 == password: print('欢迎使用') while True: order = input('请输入您的指令>>>:') if order == back: print('即将退出程序') break else: print(order) continue else: print('账号和密码错误,再试一次吧') number += 1 if number == 4: go_on = input('账号和密码错误,是否继续尝试y/n>>>:') if go_on == choose: number = 1 else: print('即将退出程序')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?