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多年前,孟德斯鸠在变法的时候说过,一切拥有权力的人都容易被滥用权力,这是万古不变的一条经验.但是呢,凡是拥有大权利的 ...
随机推荐
- VS的使用插件
1. 插件安装: 1) productivity power tools:代码查看优化插件: 2) Visaul Studio Color Theme Editor 主题修改插件: 3) VS ...
- Python初体验
今天开始所有的工作脚本全都从perl转变到python,开发速度明显降低了不少,相信以后随着熟练度提升会好起来.贴一下今天一个工作代码,由于之前去一家小公司测序时,序列长度竟然都没有达到要求,为了之后 ...
- 2017 年终总结 & 2018 年度计划
不立几个 Flag,都不知道怎么作死 2017 年度计划完成情况: 1.健身时间不少于350天: 未完成 中断了22天,实际运动 343天 2.至少每个月看一本书: 及格 <切尔诺贝利的 ...
- SpringMVC PathVariable和post、get、put、delete请求
1.PathVariable 可以映射URL中的占位符到目标方法的参数中. 2.Rest风格的URL 以CRUD为例: 新增:/order POST 修改:/order/id PUT 获取:/orde ...
- Java工程读取resources中资源文件路径问题
正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径.在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例. 本地读取资 ...
- jQuery 遍历函数(八)
函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closes ...
- js 类数组arguments详解
arguments并不是一个真正的数组,而是一个"类似数组(array-like)"的对象: 就像下面的这段输出,就是典型的类数组对象: [, , callee: ƒ, Symbo ...
- 修改wamp中mysql的默认空密码
WAMP安装好后,mysql密码是为空的,那么要如何修改呢? 一.打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车. 二.输入"use mysql",意思是使用m ...
- [Spark内核] 第36课:TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等
本課主題 通过 Spark-shell 窥探程序运行时的状况 TaskScheduler 与 SchedulerBackend 之间的关系 FIFO 与 FAIR 两种调度模式彻底解密 Task 数据 ...
- 自学Aruba1.3-WLAN一些基本常识802.11n速率计算方式、802.11n及802.11AC速率表
点击返回:自学Aruba之路 自学Aruba1.3-WLAN一些基本常识802.11n速率计算 1. 802.11n速率计算方式1.1 802.11n使用的主要技术 802.11n采用MIMO多天线技 ...