for 、range关键字、内置方法

【一】while循环补充

continue: 结束当前当次循环

break:结束整个循环

【二】for循环

遍历可迭代类型(能索引取值的也属于可迭代类型

字符串

name = "dream"
for a in name:
     print(a)
d
r
e
a
m   

列表

name = [1, 2, 3, 4]
for a in name:
     print(a)
1
2
3
4

元组

name = (4, 1, 2)
for a in name:
     print(a)
4
1
2        

集合

name = {4, 5, 6}
for a in name:
     print(a)
4
5
6        

字典(特殊,只能遍历出键)

name = {"username": "dream"}
for a in name:
     print(a) # 遍历出键
     print(name[a]) # 遍历出值
username
dream    

死循环

无法退出当前循环

不要在代码中出现死循环;会造成当前CPU飙升

while True:
     print(1)

可以在while循环中定义一个标志位

tag = True
while tag:
    username = input(":>>>")
    if username == "dream":
    	tag = False

【三】range 关键字

帮我们生成指定区间内的整数列表

2.7 版本及之前range(1, 5) 会给你返回一个 [1,2,3,4]

3.6 之后 优化掉了

print(range(1, 5), type(range(1, 5)))

range(1, 5) <class 'range'> ---- 生成器对象

用几个取几个

顾头不顾尾

for i in range(1,5):
    print(i)
1
2
3
4

默认开始的位置是从数字 0 开始到指定位置 -1

for i in range(5):
     print(i)
0
1
2
3
4        

【四】登录练习

# 登录认证练习
# 用列表套字典存储用户数据
# 有一个输入框输入用户名和密码 ,增加重试次数 让他一直重试知道正确位置
# 正确的话就断掉了
user_list = [{"11": "1"}, {"22": "2"}]

max_attempts = 3
attempts = 0

while attempts < max_attempts:
    input_name = input("请输入用户名:>>>")
    input_password = input("请输入密码:>>>")

    for user in user_list:
        if input_name in user and user[input_name] == input_password:
            print("登录成功")
            break
    else:
        attempts += 1
        print("登录失败,请重新输入!")
        continue

    break
else:
    print("输入错误三次,账号锁定")
user_data_list = [
    {"username": "11", "password": "1"},
    {"username": "22", "password": "2"},
    {"username": "33", "password": "3"},
    {"username": "44", "password": "4"}
]

tag_True = True
while tag_True:
    user_name = input("请输入用户名;")
    user_password = input("请输入密码;")
    # 校验用户是否存在列表中
    user_found = False  # 用于检查用户是否存在的标志
    for user_data_dict in user_data_list:
        # 校验用户名
        if user_data_dict.get("username") == user_name:
            user_found = True
            # 校验密码
            if user_data_dict.get("password") == user_password:
                print("登陆成功!")
                tag_True = False
            else:
                print("密码错误!!!")
    if not user_found:
        print("用户名错误")

【五】整数类型的内置方法

【一】数据类型的内置方法

# 八大基本数据类型
# 为了更加方便操作每一个数据类型,于是开发者就将可以通过繁琐操作达到目的的代码封装成一个方法
# 帮我们快速写代码

【二】数字类型

【1】整数类型

print(1 + 1)
num = 1
print(num.__add__(2))

# 【1】类型强制转换
# 可将符合整数格式的字符串转换成整数类型
num = '1'
print(int(num))
# 只能转换副歌整数类型格式的字符串
print(int('a'))

# 【2】进制转换
# (1)十进制转八进制 0o
print(oct(999))  # 0o1747

# (2)十进制转十六进制 0x
print(hex(999))  # 0x3e7

# (3)十进制转二进制 0b
print(bin(999))  # 0b1111100111

转换回去
num = '0b1111100111'
print(int(num, 2))
num = '0o1747'
print(int(num, 8))
num = '0x3e7'
print(int(num, 16))

999
999
999

【2】浮点数的内置方法

salary = 100.01
# 强制类型转换 转换符合浮点数的字符串 可以将整数转换为 浮点数
num = 100
print(float(num))
num = '100.111'
print(float(num))

100.0
100.111

【3】判断当前类型是否是整数或者浮点数

num1 = b'4'  # <class 'bytes'>

num2 = '4'  # unicode,Python 3 中不需要在字符串前加 'u'
num3 = '四'  # 中文数字

num4 = 'Ⅳ'  # 罗马数字

# 判断当前字符串类型是否是指定的数据格式

# (1)判断当前是否为数字类型 isdigit
print(num1.isdigit()) T
print(num2.isdigit()) T
print(num3.isdigit()) F
print(num4.isdigit()) F

# (2)判断是否是小数点类型
print(num1.isdecimal()) 报错

num = 100.01			
print(num.isdecimal())	报错

print(num2.isdecimal())	T

# age = input("请输入年龄 :>>>> ")
if age.isdigit():
    age = int(age)
    print(type(age))
else:
    print(f"语法不规范")

【六】字符串内置方法(必会)

【一】字符串的语法格式

# name = "dream"

【二】内置方法 --- 优先记住和学习

【1】字符串拼接

(1)直接字符串 + 法
name = "dream"
name_one = "hope"
print(name + name_one)

# dreamhope2).join字符串拼接(取出来后挨个拼接)
name = "dream"
name_one = "hope"
print(name + name_one)
print(name.join(name_one))

# hdreamodreampdreame

print(','.join(name_one))

# h,o,p,e

【2】索引取值

# 正索引 从 0开始取值
# 负索引从 -1 开始取值
# 索引取值可以,但是不能修改

【3】切片

给定一个起始位置和结束位置 截取这之间的元素

顾头不顾尾

name = "dream"
# 正常语法:[起始索引位置:截止索引位置]
print(name[2:4])

# ea

# 不正常语法: [起始索引位置:截止索引位置:步长]
# 步长;隔几个去一个  不填默认为1
print(name[0:4:2])

# de

print(name[0:-1:-2])
# 切不到

# 负索引切片 遵循坐标轴的规范 左小右大
print(name[-4:-1])

# rea

【4】计算长度

print(len(name))

【5】成员运算

print("d" in name)

【6】去除空格

username = input(">>>>")
# 去除手抖产生的空格
username = username.strip()
if username == "dream":
    print(username)
    
# 默认是去除两侧的空格
# 去除两边的特殊字符 
name = " dream "
print(name.strip(' '))
name = "$dream$"
print(name.strip("$"))

# # 去除指定一侧的特殊字符
# # right :右侧
print(name.rstrip("$"))
# # left 左侧
print(name.lstrip("$"))

【7】切分字符串

username_password = "dream|521"
# 参数是按照什么去切 切完以后这个编制就没了
username, password = username_password.split("|")
print(username, password)

# dream 521

#若没有参数,则按照空格切分
name = "dream 521"
print(name.split())

# ['dream', '521']

可以控制切的次数
name = "dream|521|11"
print(name.split("|"),1)

# ['dream','521|11']

可以修改切的方向
print(name.rsplit("|"),1)
# ['dream|521','11']

print(name.lsplit("|"),1) # 没有lsplit方法

【8】遍历

# 就是将里面的每一个元素看一遍
name = 'dream'
for i in name:
    print(i)

d
r
e
a
m

range : 顾头不顾尾
for i in range(len(name)):
    print(name[i])

d
r
e
a
m    

【9】重复当前元素

print("*" * 10)

# **********

【10】大小写转换

name = 'Dream'
print(name.upper())
print(name.lower())

# DREAM
# dream

判断当前字符是否全大小写
name = "dream"
print(name.islower())
print(name.isupper())

# True
# False

【11】判断当前字符串以 .. 开头或者结尾

name = "dream"

# 判断开头
print(name.startswith("d"))
# 判断结尾
print(name.endswith("m"))

# True
# True

【11】格式化输出语法

#  %s %d占位
name = "dream"
age = 18

print("my name is %s " % name)
print("my name is %s ,my age is %s" % (name, age))

# format
# 按位置传参数
print('my name is {} ,my age is {}'.format(name, age))

# 按关键字传参数
print('my name is {name_location} ,my age is {age_location}'.format(name_location=name, age_location=age))

# f+ {}
print(f"my name is {name} . my age is {age}")

【12】join拼接(可迭代的就能拼)

print(','.join("dream"))
print('|'.join(["dream","521"]))
print('|'.join(("dream","521")))

# d,r,e,a,m
# dream|521
# dream|521

【13】替换

把旧的字符替换成新的字符

name = 'dream_sb'
print(name.replace'_sb','')
#dream
print(name.replace'_sb','_lj')
#dream_lj
posted @   随机昵称yi  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示