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 = '' 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
Python3 的元组的更多相关文章
- python3.x元组打印错误 TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
原创by南山南北秋悲 欢迎引用!请注明原地址:http://www.cnblogs.com/hwd9654/p/5676746.html 谢谢! TypeError: unsupported ope ...
- Python3 数据类型-元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 实例1(Python3.0+): tu ...
- python3:tuple元组
https://www.runoob.com/python3/python3-tuple.html 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. Py ...
- 一起入门python3之元组和数列
这一节我们来说一下,元组(tupe)&数列(list).每天苦逼的工作不易啊,哎.不过呢一腔热血学习.哈哈哈哈 #井号代表注释哈. 0x01 数列-list 数列可以说是一种集合 ...
- python3.5 元组
1.创建元祖 tup1 = ('jenkins','mysql') print(tup1) ssh://root@192.168.0.204:22/usr/bin/python -u /home/pr ...
- [Python3] 012 元组:list,我们不一样!
目录 0. 元组的独白 1. 元组的创建 2. 元组的特性 (1) 概述 (2) 少废话,上例子 1) 索引 2) 分片 3) 序列运算 4) 成员检测 3. 元组的遍历 (1) 简单总结 (2) 少 ...
- (03)-Python3之--元组(tuple)操作
1.定义 元组的关键字:tuple 元组以()括起来,数据之间用 , 隔开.元组当中的数据,可以是任意类型.数值是可以重复的. 元组元素是 不可变的,顺序是 有序的. 例如: b = ("萝 ...
- Python - 元组(tuple) 详解 及 代码
元组(tuple) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17290967 元组是存放任意元素集合,不能修 ...
- 零基础入门学习Python(13)--元组:戴上了枷锁的列表
前言 这节课我们讨论主题是元祖:我们有个小标题戴上了枷锁的列表 我们都知道早在300多年前,孟德斯鸠在变法的时候说过,一切拥有权力的人都容易被滥用权力,这是万古不变的一条经验.但是呢,凡是拥有大权利的 ...
随机推荐
- spring的基本使用
Spring的基本使用ioc,今天主要给大家说明了解决强耦合的联系,并且,注入的基本使用 Java里面的强耦合并且讲了spring是如何解决强耦合的第一种方式使用工厂模式,用的是反射,第二种方式是sp ...
- Spring之设置Bean值
Java实例的属性值可以有很多种数据类型.基本类型值.字符串类型.java实例甚至其他的Bean实例.java集合.数组等.所以Spring允许通过如下几个元素为Bean实例的属性指定值: value ...
- Composer创建和发送HTTP Request
Fiddler Composer的功能就是用来创建HTTP Request 然后发送. 你可以自定义一个Request, 也可以手写一个Request, 你甚至可以在Web会话列表中拖拽一个已有的Re ...
- 走进Vue时代进阶篇(01):重构电商购物车模块
前言 从这篇文章开始,我准备给大家分享一些关于Vue.js这门框架的技巧性系列文章,正好我们公司项目中也用到了Vue.所以,教是最好的学.进阶篇比较适合于二三线城市,还在小厂打拼的童鞋们.欢迎你们跟着 ...
- springMVC(7)---表单标签
springMVC(7)---表单标签 form标签作用 简单来讲form表单有两大作用 1:第一就是往后端提交数据或者前端回显 ...
- File System 之本地文件系统
上一篇文章提到了,最近做一个基于 File System/IndexedDB的应用,上一篇是定额和使用的查询. 因为LocalFileSystem只有chrome支持,有点尴尬,如果按需加载又何来尴尬 ...
- Android Ptrace Inject
之前介绍了Android平台上3种常见的hook方法,而hook的前提是进程注入,通过进程注入我们可以将模块或代码注入到目标进程中以便对其空间内的数据进行操作,本篇文章介绍基于ptrace函数的注入技 ...
- css条纹背景
一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...
- 一秒搞定mysql的远程登录
执行下面命令! mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypw' WITH GRANT OPTION ; ...
- Centos6.4三种更改hostname的方法之间的对比
首先,利用hostname命令查看一下当前主机的主机名,在终端输入hostname,会发现显示的是完整的主机名称(主机名.域名),其中主机名与进入终端后:登录名@主机名,显示的一致,如下图所示: 其次 ...