首页 > 其他分享 >for 、range关键字、内置方法

for 、range关键字、内置方法

时间:2024-05-10 09:01:01浏览次数:23  
标签:username 内置 name age 关键字 range user print dream

【一】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)

# dreamhope

(2).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

标签:username,内置,name,age,关键字,range,user,print,dream
From: https://www.cnblogs.com/yi416/p/18183489

相关文章

  • pytest + yaml 框架 -69.新增depend 关键字,导入其它yaml用例
    前言有小伙伴提到,test_a.yml中已经写了几个流程,test_b.yml中希望能接着test_a.yml去写用例,于是就需要先导入test_a.yml用例。为了满足此需求,v1.6.3版本在config中新增depend关键字。需求场景test_a.yml中已经写了一些用例config:variables:x:helloy:wo......
  • Python高级之常用的内置函数
    【一】什么是内置函数内置函数就是Python给你提供的,拿来直接用的函数目前共有68个内置函数Built-inFunctionsAabs()aiter()all()any()anext()ascii()Bbin()bool()breakpoint()bytearray()bytes()Ccallable()chr()classmethod()compile()complex()Ddelatt......
  • MindSpore反向传播配置关键字参数
    技术背景在MindSpore深度学习框架中,我们可以向construct函数传输必备参数或者关键字参数,这跟普通的Python函数没有什么区别。但是对于MindSpore中的自定义反向传播bprop函数,因为标准化格式决定了最后的两位函数输入必须是必备参数out和dout用于接收函数值和导数值。那么对于一个......
  • Mybatis if判断中使用了Ognl关键字导致报错解决方法
    mybatisxml中使用OGNL解析参数,如果直接使用了关键字则会导致解析失败。常见的关键字有:字段mybatis关键字bor(字符|)的英文xor字符^的英文and字符&&band字符&ed字符==neg字符!=lt字符<gt字符>lte字符<=......
  • 深入浅出const和static关键字
    constconst是constant的缩写,意为不变的。在C++中是用来修饰内置类型变量,自定义对象,成员/普通函数,返回值,函数参数。C++const允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可......
  • 解决SpringBoot内置tomcat出现error:An incompatible version [1.2.16] of the Apache
    问题描述在运行SpringBoot时出现一个error2024-05-08T20:52:06.512+08:00ERROR20752---[springboot3-003-demo][main]o.a.catalina.core.AprLifecycleListener:Anincompatibleversion[1.2.16]oftheApacheTomcatNativelibraryisinstalled,wh......
  • Python中级之数据类型的内置方法1(数字类型和字符串)
    【一】数字类型【1】整数类型(int)(1)定义直接用整数定义,整数类型的值不能修改num=6(2)内置方法int.bit_length()#返回整数的二进制表示中最高位的位数,不包括符号和前导零。a=10b=a.bit_length()print(b)#输出4int.to_bytes(length,byteorder,signed)#......
  • Python中级之数据类型的内置方法3(元祖、布尔、集合)
    【一】元祖类型(tuple)【1】定义元祖类型是有序且不可变的数据类型,通常使用小括号定义(也可以使用逗号)#用逗号定义num_tuple=1,2,3,4,5#用小括号定义num_tuple=(1,2,3,4,5)【2】内置方法(1)类型强转#使用tuple()函数将其他数据类型转换为元组类型num_list=......
  • Python中级之数据类型的内置方法2(字典和列表)
    【一】字符串类型的内置方法(熟悉)【1】查找(1)find方法#【1】默认从左到右开始查找,找得到则返回元素所在的索引位置name='ligo'str=name.find('i')print(str)#输出1#【2】也可在区间内寻找,找不到则返回-1str=name.find('g',3,4)print(str)#输出-1#【3】也......
  • volatile关键字
    volatile关键字概要volatile修饰符并不是Java语言的首创,早在C和C++当中就已经存在。为了理解volatile关键字的作用和原理,需要先了解一些计算机基础知识。请先参考《什么是Java内存模型(JMM)?》我们知道,并发编程时,线程安全涉及三个特性:原子性、可见性、有序性。volatile用于保证......