python编程练习(小甲鱼)第11-15课

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

需求:

低级密码要求:

  1. 密码由单纯的数字或字母组成
  2. 密码长度小于等于8位

中级密码要求:

  1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
  2. 密码长度不能低于8位

高级密码要求:

  1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
  2. 密码只能由字母开头
  3. 密码长度不能低于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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值