1.列表切片,可设置步长
list1 = [1, 3, 2, 9, 7, 8]
print(list1[2:5])#代表从索引2开始,直到索引5为止,但不包括索引5,即输出[2,9,7]
print(list1[0:4:2])#代表从索引0开始,到索引4为止,步长为2
2.pop([index=-1])移出列表中的一个元素,默认最后一个元素,并且返回该元素的值
list1 = [1, 3, 2, 9, 7, 8]
list1.pop()
print(list1)#[1,3,2,9,7]
3.简洁分片操作
list1[::2]
print(list1[::2])#[1,2,7]只设置步长
4.可以利用分片完成列表的拷贝,例:list2=list1[:],实现了标签和内容的拷贝。
old = [1, 2, 3, 4, 5]
new = old#这里new和old是指向同一列表的两个标签
old = [6]#当old被重新赋值时,old和new将指向不同的列表,不同于排序操作sort()
print(new)#[1,2,3,4,5]
print(old)#[6]
5.返回参数在列表中的位置
old = [1, 2, 3, 4, 5]
print(old.index(4,0,4))#返回参数4在列表中的范围,查找范围为索引0-4
6.列表[]元素可修改,元组()元素不可修改
x,y = 1,2#元组
h = x,y
print(type(h))
a = (0)
print(type(a))#int
a = (0,)
print(type(a))#tuple
7.\t横向制表符tab \r回车符
print('\tmen')#输出 men
print(r'\tmen')#输出\tmen,r表示原始字符串操作符
8.字符串索引
str1 = '<a href="http://www.fishc.com/dvd" target="_blank">'
print(str1[16:29])
print(str1[-35:-22])#负数索引[16-51:29-51],字符串长度为51
print(str1[20:-20])#相当于索引值为[20:-20+51]
9.请写一个密码安全性检查的脚本代码:check.py
需求:
低级密码要求:
- 密码由单纯的数字或字母组成
- 密码长度小于等于8位
中级密码要求:
- 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
- 密码长度不能低于8位
高级密码要求:
- 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
- 密码只能由字母开头
- 密码长度不能低于16位
symbols = "~!@#$%^&*()_=-/,.?<>;:[]{}\|"
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
t = 'y'
while t == 'y':
passwd = input('请输入密码:')
length = len(passwd)
#判断长度
while(passwd.isspace() or length == 0):#isspace()检查字符串是否只包含空格
passwd = input('您输入的密码为空(或空格),请重新输入:')
length = len(passwd)
if length <= 8:
flag_len = 1
else:
flag_len = 2
if length >= 16:
flag_len = 3
flag_a,flag_b,flag_c= 0,0,0
#判断是否包含特殊字符
for each in passwd:
if each in symbols:
flag_a +=1
break
#判断是否包含字母
for each in passwd:
if each in chars:
flag_b += 1
break
#判断是否包含数字
for each in passwd:
if each in nums:
flag_c += 1
break
#打印结果
while True:
if flag_len == 1 and(flag_b or flag_c ==1) :
print("您的密码安全级别评定为:低")
elif flag_len == 2 and(flag_a+flag_b+flag_c==2):
print("您的密码安全级别评定为:中")
elif flag_len == 3 and(flag_a+flag_b+flag_c==3) and passwd[0] in chars:
print("您的密码安全级别评定为:高")
print("请继续保持")
else:
print('密码格式无法判别')
break
t = input("还要再测试么?(输入'y'继续,输入'n'退出)")
10.str.format()格式化字符串的函数
print("{0} {1}".format("不打印", "打印"))#设置指定位置,输出不打印 打印
print('{0}{1:.2f}'.format('Pi = ', 3.1415))#输出Pi = 3.14,位置对应,浮点数保留两位小数
11.编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF)
请输入一个整数(输入Q结束程序):34
十进制 -> 十六进制:34 -> 0x22
十进制 -> 八进制:34 -> 0o42
十进制 -> 二进制:34 -> 0b100010
请输入一个整数(输入Q结束程序):
num = input("请输入一个整数(输入Q结束程序):")
while num != 'Q':
num = int(num)
print('十进制 -> 十六进制:%d -> %#x'%(num,num))# #在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X'
print('十进制 -> 八进制:%d -> %#o'%(num,num))
print('十进制 -> 二进制:%d -> '%num,bin(num))
num = input("请输入一个整数(输入Q结束程序):")
if num == 'Q':
break