day05

发布时间 2023-11-30 23:55:33作者: 王苗鲁

1.今日内容

今日内容:
    1、while循环

    2、for循环

    3、可变不可变类型

    4、基本数据类型常用操作及内置方法
        数字类型
            int
            float
        字符串类型

2.流程控制之while循环

"""
语法
while 条件:
    代码1
    代码2
    代码3
"""
# 一.基本使用
# i=0
# while i < 5: # 5 < 5
#     print(i) # 4
#     i += 1 # i=5
"""
0
1
2
3
4
"""

# 二.死循环:永远也不结束的循环
# while True:
#     # print('1111')
#     1+1

# 三.结束while循环的两种方式
# 1、break:直接终止本层循环,不会有下一次循环

"""
tag = True
while tag:
    print('start...')
    break
    print('end...')
"""

# 2、条件改为假:不会直接终止本层循环,会在下一次循环时终止

"""
tag = True
while tag:
    print('start...')
    tag = False
    print('end...')
"""

# 案例
tag = True
while tag:
    inp_name = input("请输入你的用户名>>:")
    inp_pwd = input("请输入你的密码>>:")

    if inp_name == "egon" and inp_pwd == "123":
        print("登录成功")
        # break
        tag = False
    else:
        print("账号密码错误")
    print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

print('end...')

"""
while True:
    while True:
        while True:
            break
        break
    break

tag = True
while tag:
    while tag:
        while tag:
            tag=False
"""

# 四.while+continue:终止本次循环,直接进入下一次
i = 0
while i < 5:
    if i == 3:
        i += 1
        continue
    print(i)  #
    i += 1  # i=3

# 案例
while True:
    inp_name = input("username: ")
    inp_pwd = input("password: ")

    if inp_name == "egon" and inp_pwd == "123":
        print("登录成功")
        break
    else:
        print("账号密码错误")
        # continue  # 画蛇添足

print('end...')

# 五.while+else
i = 0
while i < 5:
    if i == 3:
        # i+=1
        # continue
        break
    print(i)
    i += 1
else:
    print('wile循环完了之后,才会运行这里')

3.while循环练习题part1

案例1

while True:
    inp_name = input('please input  your name: ')
    inp_pwd = input('please input  your password: ')
    if inp_name == "egon" and inp_pwd == "123":
        print('login successful')
        break
    else:
        print('username or password error')

案例2

count = 0
while True:
    inp_name = input('please input  your name: ')
    inp_pwd = input('please input  your password: ')
    if inp_name == "egon" and inp_pwd == "123":
        print('login successful')
        break
    else:
        print('username or password error')
        count += 1
        print(count)
        if count == 3:
            print("输错次数达到了限制")
            break

案例3

count = 0
while True:
    inp_name = input('please input  your name: ')
    inp_pwd = input('please input  your password: ')
    if inp_name == "egon" and inp_pwd == "123":
        print('login successful')
        break
    else:
        print('username or password error')
        count += 1
        print(count)
    if count == 3:
        print("输错次数达到了限制")
        break

案例4

count = 0
while count < 3:
    inp_name = input('please input  your name: ')
    inp_pwd = input('please input  your password: ')
    if inp_name == "egon" and inp_pwd == "123":
        print('login successful')
        break
    else:
        print('username or password error')
        count += 1
        print(count)  # 3
else:
    print("输错次数达到了限制")

4.while循环练习题part2

案例5

count = 0
while True:
    inp_name = input('please input  your name: ')
    inp_pwd = input('please input  your password: ')
    if inp_name == "egon" and inp_pwd == "123":
        print('login successful')
        while True:
            print("""
            0 退出
            1 取款
            2 存款
            3 转账
            """)
            choice = input("请输入命令编号: ")
            if choice == "0":
                break
            elif choice == "1":
                print("============正在取款============")
            elif choice == "2":
                print("============正在存款============")
            elif choice == "3":
                print("============正在转账============")
            else:
                print("============输入错误============")
        break
    else:
        print('username or password error')
        count +=1
        print(count)
    if count == 3:
        print("输错次数达到了限制")
        break

5.for循环介绍与基本使用

'''
1.什么是for循环
    循环就是重复做某件事,for循环是提供python的第二种循环机制

2.为何要有for循环
    理论上for循环能做到的事情,while循环都可以做
    之所有要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁

3.如何用for循环
语法:
for 变量名 in 可迭代对象:# 可迭代对象可以是:列表、字典、字符串、元祖、集合
    代码1
    代码2
    代码3
'''
P.S 能被for循环,循环的对象称为可迭代对象

# 一:for循环基本使用之循环取值
# 案例1:循环取值
# 简单版
l = ['wangmiaolu', 'sajinde', 'liupei']
for x in l:
    print(x)

# 复杂版
l = ['wangmiaolu', 'sajinde', 'liupei']
i = 0
while i < 3:
    print(l[i])
    i += 1

# 案例2:字典循环取值
# 简单版
dic = {'name1': 'wangmiaolu', 'name2': 'sajinde', 'name3': 'chaijun'}
for k in dic:
    print(k, dic[k])

# 复杂版:while循环可以遍历字典,太麻烦

# 案例3:字符串循环取值
# 简单版
msg = 'you can you up,no can no bb'
for x in msg:
    print(x)

6.for循环小结

# 二:总结for循环与while循环的异同
# 相同之处:都是循环、for循环可以干的事、while循环也可以干
# 不同之处:
#         while循环称之为条件循环,循环次数取决于条件何时变为假
#         for循环称之为"取值循环",循环次数取决in后包含值的个数
for x in [1, 2, 3]:
    print('======>')
    print('888888')

7.for+range

# 三:for循环控制循环次数: range()
# 有局限性
for x in "abc":
    inp_name = input('请输入你的名字>>:')
    inp_pwd = input('请输入你的密码>>:')

# range功能介绍
'''
range(10)=>[0,1,2,3,4,5,6,7,8,9]
顾头不顾尾
range(1,9)=>[1,2,3,4,5,6,7,8]
range(1,9,1)=>[1,2,3,4,5,6,7,8]
range(1,9,2)=>[1,3,5,7]
'''
for i in range(30):
    print('=====>')

8.for循环案例及for+break+else

username = 'egon'
password = '123'
for i in range(3):
    inp_name = input('请输入您的账号>>:')
    inp_pwd = input('请输入您的密码>>:')

    if inp_name == username and inp_pwd == password:
        print('登录成功')
        break
else:
    print('输错账号密码次数过多')

9.range补充

# 四:range补充知识(了解)
# 1.for搭配range,可以按照索引取值,但是麻烦,所以不推荐
# l=['aaa','bbb','ccc']
# for i in range(len(l)):
#     print(i,l[i])
# 
# for x in l:
#     print(l)
# 
# 2.range()在python3里得到的是一只"会下蛋的老母鸡"

10.for+continue

# 五:for+continue
# for i in range(6):  # 0 1 2 3 4 5
#     if i == 4:
#         continue
#     print(i)

11.for循环嵌套

# 六:for循环嵌套:外层嵌套一次,内层循环需要完整的循环完毕
# for i in range(3):
#     print('外层循环->>', i)
#     for j in range(5):
#         print('内层循环->>', j)
#         break

# 补充:终止for循环只有break一种方案

12.print补充

"""
\t水平制表(跳到下一个tab位置)
\r回车(将当前位置移到本行开头)
\n换行(将当前位置移到下一行行开头)
"""

print('hello %s' % 'egon')
print('hello', 'world', 'egon')
print('hello\n')
print('world')
print('hello\n', end='')
print('world')

print('hello', end='**')
print('world', end='**')

13.可变不可变类型

# 可变类型:值改变了,id不变,证明就是在改变原值,原值是可变类型
# 不可变类型:值改变了,id也跟着变,证明就是在产生了新的值,原值是不可变类型

# x = 10
# print(id(x))
# x = 11
# print(id(x))

x = [111,222]
print(id(x))
x[0]=666666
print(id(x))
print(x)

14.数字类型

# ======================================int基本使用======================================
# 1、用途

# 2、定义方式
age = 18  # age = int(18)
# print(type(age))

# 2.1 数据类型转换
# res=int("   18     ")
# print(res,type(res))

# int("aadfsadf")

# int("10") + 11
# "10" + 11
# python一种解释型、强类型、动态类型

# 3、常用操作+内置的方法
# 算术运算、比较运算
# print(10 + 3.3)
# print(10 > 3.3)


# ======================================该类型总结====================================
# 存一个值

# 不可变


# ======================================float基本使用======================================
# 1、用途

# 2、定义方式
# sal = 18.3  # sal = float(18.3)
# print(type(sal))

# 2.1 数据类型转换
# int("3.3")
# res=float("3.3")
# print(res,type(res))

# 3、常用操作+内置的方法
# 算术运算、比较运算
# print(10 + 3.3)
# print(10 > 3.3)


# ======================================该类型总结====================================
# 存一个值

# 不可变
# x=3.1
# print(id(x))
# x=3.2
# print(id(x))

# 了解(***)
# 复数
# x = 1-2j
# print(x.real)
# print(x.imag)
# print(type(x))

print(bin(11))
print(oct(11))
print(hex(11))

15.字符串类型

# ======================================str基本使用======================================
# 1、用途:用于记录描述性质的状态

# 2、定义方式:在"",'',""" """,''' '''内包含一串字符
msg = "18"  # msg=str("18")
print(type(msg))

# 数据类型转换:可以把任意类型转成str类型
res = str([1, 2, 3])
print(res, type(res))

# 3、常用操作+内置的方法
# 优先掌握的操作:
# 1、按索引取值(正向取+反向取) :只能取
msg = "hello world"
# print(msg[0])
# print(msg[-1])
# print(msg)
# msg[0] = "H"

# 2、切片(顾头不顾尾,步长)
msg = "hello world"
# print(msg[0:5])
# print(msg[0:5:2])  # 0 2 4
# print(msg)
# 
# print(msg[:])  # 完整拷贝字符串
# print(msg[-1:-4:-1])
# print(msg[-1::-1])
# print(msg[::-1])  # 将字符串倒过来

# 3、长度len
# msg = "h 你"
# print(len(msg))

# 4、成员运算in和not in
# msg = "hello world"
# # print("wo" in msg)
# print(not "wx" in msg)
# print("wx" not in msg)

# 5、移除空白strip
msg = "   hello    "
# print(msg)
# res = msg.strip()
# print(res)
# print(msg)
# 
# msg = "***hello******"
# msg = "**+-/?*h*-ello**?-**&^**"
# print(msg.strip("^&*+-/?"))
# 
# inp_user = input("username: ").strip()  # inp_user = "egon    "
# inp_pwd = input("password: ").strip()
# if inp_user == "egon" and inp_pwd == "123":
#     print('ok')
# else:
#     print('no')

# 6、切分split
msg = "egon:18:male"
# res = msg.split(":")
# print(res[0])
# print(res)

# res = msg.split(":",1)
# print(res)

# info = ["egon",18,"male"]
# res1 = "%s:%s:%s" %(info[0],info[1],info[2])
# res1 = ":".join(info)
# print(res1)

# 7、循环
msg = "egon:18:male"
for x in msg:
    print(x)

# ======================================该类型总结====================================
# 存一个值or存多个值

# 有序or无序

# 可变or不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)