当前位置: 首页 > news >正文

Python3 的元组

元组(tuple):戴上了枷锁的列表

元组与列表非常相似但是元组内元素的类型相同,且元组内的元素不能修改

1、创建元组的方法

与列表不同创建元组大部分情况下是用小括号,例如

tuple1=(1,2,3)
>>> tuple1
(1, 2, 3)

也可以不用小括号,例如

tuple1=1,2,3
>>> tuple1
(1, 2, 3)

因此创建元组的关键在于“逗号”,在创建单个元素的元组时应注意:

tuple1=(1)
tuple2=(1,)
>>> type(tuple1)
<class 'int'>
>>> type(tuple2)
<class 'tuple'>

>>> 8*8,
(64,)
>>> 8*(8,)
(8, 8, 8, 8, 8, 8, 8, 8)
>>> 8*(8)
64

由以上例子可见创建一个元素的元组时要在元素后加一个逗号

2、更新和删除一个元组的方法

由于元组是不可变的所以更新和删除元组中的元素都是用元组分片的方法

tuple1=('迪丽热巴','鹿晗','关晓彤','大黑牛','邓超')
#我要删除关晓彤
tuple1=tuple1[:2]+tuple1[3:]
>>> tuple1
('迪丽热巴', '鹿晗', '大黑牛', '邓超')

#-----------------------------------------------------
tuple1=('迪丽热巴','鹿晗','关晓彤','大黑牛','邓超')

#我要删除关晓彤
tuple1=tuple1[:2]+tuple1[3:]


#我要加上范冰冰
tuple1=tuple1[:2]+('范冰冰',)+tuple1[2:]
>>> tuple1
('迪丽热巴', '鹿晗', '范冰冰', '大黑牛', '邓超')

3、相关的操作符

于列表一样,元组有拼接操作符、重复操作符、关系操作符、成员操作符、逻辑操作符

4、字符串

1)字符串和元组非常相似可以进行切片 操作,也可以使用索引来访问单个字符

str1="I love You"

#分片操作
str1=str1[:5]
>>> str1
'I lov'
#索引
str2=str1[0]
>>> str2
'I'

2)字符串的更新与删除跟元组一样是用切片的方法

str1="I love You"

str1=str1[:5] +"love"+str1[6:]#新字符串

3)与字符串相关的操作符与元组一样

拼接操作符、重复操作符、关系操作符、成员操作符、逻辑操作符

4)字符串的内置方法

capitalize()

把字符串的第一个字符改为大写

casefold()

把整个字符串的所有字符改为小写

center(width)

将字符串居中,并使用空格填充至长度 width 的新字符串

count(sub[, start[, end]])

返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。

encode(encoding='utf-8', errors='strict')

以 encoding 指定的编码格式对字符串进行编码。

endswith(sub[, start[, end]])

检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。

expandtabs([tabsize=8])

把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。

find(sub[, start[, end]])

检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。

index(sub[, start[, end]])

跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

isalpha()

如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

isdecimal()

如果字符串只包含十进制数字则返回 True,否则返回 False。

isdigit()

如果字符串只包含数字则返回 True,否则返回 False。

islower()

如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。

isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False。

isspace()

如果字符串中只包含空格,则返回 True,否则返回 False。

istitle()

如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。

isupper()

如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。

join(sub)

以字符串作为分隔符,插入到 sub 中所有的字符之间。

ljust(width)

返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。

lower()

转换字符串中所有大写字符为小写。

lstrip()

去掉字符串左边的所有空格

partition(sub)

找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '')

replace(old, new[, count])

把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。

rfind(sub[, start[, end]])

类似于 find() 方法,不过是从右边开始查找。

rindex(sub[, start[, end]])

类似于 index() 方法,不过是从右边开始。

rjust(width)

返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。

rpartition(sub)

类似于 partition() 方法,不过是从右边开始查找。

rstrip()

删除字符串末尾的空格。

split(sep=None, maxsplit=-1)

不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。

splitlines(([keepends]))

按照 '\n' 分隔,返回一个包含各行作为元素的列表,如果 keepends 参数指定,则返回前 keepends 行。

startswith(prefix[, start[, end]])

检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。

strip([chars])

删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。

swapcase()

翻转字符串中的大小写。

title()

返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。

translate(table)

根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。

upper()

转换字符串中的所有小写字符为大写。

zfill(width)

返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。

 

 

  5)密码强度检测

# 密码安全性检查代码
#
# 低级密码要求:
#   1. 密码由单纯的数字或字母组成
#   2. 密码长度小于等于8位
#
# 中级密码要求:
#   1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
#   2. 密码长度不能低于8位
#
# 高级密码要求:
#   1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
#   2. 密码只能由字母开头
#   3. 密码长度不能低于16位

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'

passwd = input('请输入需要检查的密码组合:')

# 判断长度
length = len(passwd)

while (passwd.isspace() or length == 0) :
    passwd = input("您输入的密码为空(或空格),请重新输入:")
    length = len(passwd)

if length <= 8:
    flag_len = 1
elif 8 < length < 16:
    flag_len = 2
else:
    flag_len = 3

flag_con = 0

# 判断是否包含特殊字符
for each in passwd:
    if each in symbols:
        flag_con += 1
        break
    
# 判断是否包含字母
for each in passwd:
    if each in chars:
        flag_con += 1
        break

# 判断是否包含数字
for each in passwd:
    if each in nums:
        flag_con += 1
        break    

# 打印结果
while 1 :
    print("您的密码安全级别评定为:", end='')
    if flag_len == 1 or flag_con == 1 :
        print("")
    elif flag_len == 3 and flag_con == 3 and (passwd[0] in chars):
        print("")
        print("请继续保持")
        break
    else:
        print("")

    print("请按以下方式提升您的密码安全级别:\n\
    \t1. 密码必须由数字、字母及特殊字符三种组合\n\
    \t2. 密码只能由字母开头\n\
    \t3. 密码长度不能低于16位")
    break

 

转载于:https://www.cnblogs.com/PythonFCG/p/8343371.html

相关文章:

  • 【转】四款经典3.7v锂电池充电电路图详解
  • [TJOI2013]循环格
  • 6. python 字符串格式化表达式
  • tomcat 取消项目名访问路径
  • 【Python】学习笔记5-模块pymysql操作mysql数据库
  • mysql innodb myisam 比较
  • Git 安装配置
  • typeof面试题解答
  • 辩证看待 iostat
  • RpcContext
  • mysql学习笔记(1)--varChar和char类型的区别
  • etcd raft library
  • jQuery数组去重复
  • Nginx 配置文件重写
  • python------并发编程
  • [LeetCode] Wiggle Sort
  • 2019年如何成为全栈工程师?
  • Angular 4.x 动态创建组件
  • ES6之路之模块详解
  • Golang-长连接-状态推送
  • HashMap剖析之内部结构
  • HTTP中的ETag在移动客户端的应用
  • js递归,无限分级树形折叠菜单
  • leetcode-27. Remove Element
  • MaxCompute访问TableStore(OTS) 数据
  • Mocha测试初探
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • NSTimer学习笔记
  • Python_网络编程
  • webgl (原生)基础入门指南【一】
  • 大数据与云计算学习:数据分析(二)
  • 分布式事物理论与实践
  • 使用parted解决大于2T的磁盘分区
  • 世界上最简单的无等待算法(getAndIncrement)
  • 我感觉这是史上最牛的防sql注入方法类
  • 应用生命周期终极 DevOps 工具包
  • 《码出高效》学习笔记与书中错误记录
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • 整理一些计算机基础知识!
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​数据链路层——流量控制可靠传输机制 ​
  • !!java web学习笔记(一到五)
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (void) (_x == _y)的作用
  • (WSI分类)WSI分类文献小综述 2024
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (四) Graphivz 颜色选择
  • (算法)硬币问题
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Scala的“=”符号简介
  • *上位机的定义
  • .NET 8.0 发布到 IIS
  • .NET Core WebAPI中封装Swagger配置