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(数字类型)

  1. 类型转换

把数字型的字符串转换为整型数据。

res = int('123')  # 将int方法执行之后的结果赋值给变量res
print(res, type(res))    # 输出打印的整型数据,然后显示数据类型

note:整型int只能转换纯数字的数据,带有字母和文字和小数点的无法转换。

  1. 进制转换:

整型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('即将退出程序')
复制代码

 

posted @   *sunflower*  阅读(73)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示