11列表2

一、从列表中获取元素

>>> member = ['筛子','披萨']
>>> member[0]
'筛子'
>>> member[1]
'披萨'
>>> member[0],member[1] = member[1],member[0]
>>> member[0]
'披萨'
>>> member[1]
'筛子'

二、从列表删除元素

1.   list1.remove(删除的元素的名字)
>>> member = ['筛子','披萨','左手','阿水','预言家','球皇']
>>> member.remove('阿水')
>>> member
'筛子','披萨','左手','预言家','球皇'2.   del  + 列表 或者 列表中的元素
>>> member = ['筛子','披萨','左手','阿水','预言家','球皇']
>>> del member[3]
>>> member
'筛子','披萨','左手','预言家','球皇'
>>> del member #列表被删除3.   list1.pop()  从列表中取出最后一个元素并返回给你 或者 加位置参数取出指定元素
>>> member = ['筛子','披萨','左手','阿水','预言家','球皇']
>>> member.pop()
'球皇'
>>> member
['筛子','披萨','左手','阿水','预言家']
>>> name = member.pop()
>>>> name
'预言家'
>>> member
['筛子','披萨','左手','阿水']
>>> name2 = member.pop(1)
>>> name2
'披萨'
>>> member
['筛子','左手','阿水']

三、列表分片

>>> member = ['筛子','披萨','左手','阿水','预言家','球皇']
>>> member[1:3]
['披萨','左手']
>>> member[:3]
['筛子','披萨','左手']
>>> member[3:]
['阿水','预言家','球皇']
>>> member[:]
['筛子','披萨','左手','阿水','预言家','球皇']
>>> member2 = member[:]
>>> member2
['筛子','披萨','左手','阿水','预言家','球皇']

四、课后题
1.请问 list1[0] 和 list1[0:1] 一样吗?
  不一样,list1[0]返回第0个元素的值,list1[0:1]返回一个只含有第0个元素的列表。
  
2.如果你每次想从列表的末尾取出一个元素,并将这个元素插入到列表的最前边,你会怎么做?
  list1.insert(0,list1.pop())
  
3、有些鱼油比较调皮,他说我想试试 list1[-3:-1] 会不会报错,怎么知道一试居然显示 [9, 7],这是怎么回事呢?
  Python 的列表很聪明,竟然支持负数索引,如图:
正序:   0 1 2 3 4 5
列表元素: 1 3 2 9 7 8
负序 :  -6 -5 -4 -3 -2 -1
正常索引从左到右索引,负数索引是从右到左

4、在进行分片的时候,我们知道分片的开始和结束位置需要进行指定,但其实还有另外一个隐藏的设置:步长。
list1[0:6:2][1,2,7]
1)简洁分片操作:
list1[::2][1,2,7]
2)步长不能为0,会报错
list1 = [1, 3, 2, 9, 7, 8]
list1 = [ : : 0 ]SyntaxError: invalid syntax
3) 步长可以是负数,改变方向(从尾部开始向左走)
list1[::-2][8, 9, 3]

5.课堂上小甲鱼说可以利用分片完成列表的拷贝 list2 = list1[:],那事实上可不可以直接写成 list2 = list1 更加简洁呢?
不能。

 list1 = [1, 3, 2, 9, 7, 8]list2 = list1[:]list2
[1, 3, 2, 9, 7, 8]list3 = list1list3
[1, 3, 2, 9, 7, 8]list1.sort()list1
[1, 2, 3, 7, 8, 9] list2
[1, 3, 2, 9, 7, 8]list3
[1, 2, 3, 7, 8, 9]

PS:改变列表的赋值不会一起改变,而函数操作会一起改变
>>> old = [1, 2, 3, 4, 5]
>>> new = old
>>> old = [6]
>>> print(new)
[1,2,3,4,5]
>>> print(old)
[6]

12列表3

一、运算符

1.单独一个元素可比较
>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
2.多个元素按第一个比较
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 > list2
False
3.比较运算符与逻辑运算符
>>> list3 = [123,456]
>>> list1 < list2 and list1 == list3
True
4.连接操作符
>>> list4 = list1 + list2
>>> list4
[123,456,234,123]
5.重复操作符
>>> list3 = [123,456]
>>> list3 *3
[123,456,123,456,123,456]
>>> list3
[123,456]
>>> list3 *= 3
>>> list3
[123,456,123,456,123,456]
6.成员关系操作符
>>> 123 in list3
True
>>> 123 not in list3
False
>>> list5 = [123,'TES',['阿水','左手'],456]
>>> '阿水' in list5
False
>>> '阿水' in list5[2]
True
>>> list5[2][1]
'左手'
请问如何将下边这个列表的’小甲鱼’修改为’小鱿鱼’?
>>> list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
>>> list1[1][2][0] = '小鱿鱼'

二、列表内置函数

1.  list1.count(列表中的元素)  计算元素个数
>>> list1 = [123,456,123,456,123,456]
>>> list1.count(123)
32.  list1.index(列表中的元素[,范围起始,范围结束])  计算元素第一次出现的位置
>>> list1.index(123)
0
>>> list1.index(123,1,3)
23.  list1.reverse()  原地翻转,改变列表
>>> list1.reverse()
>>> list1
[456, 123, 456, 123, 456, 123]4.  list2.sort()   正序排序
>>> list2 = [1,2,3,5,6,7,9,4,8]
>>> list2.sort()
>>> list2
[1,2,3,4,5,6,7,8,9]5. 倒序 两种放法
>>> list2.sort(reverse = True) #倒序
>>> list2
[9,8,7,6,5,4,3,2,1]
>>> list2.sort()
>>> list2.reverse()6. list2.copy() 复制
>>> list3 = list2.copy()
>>> list3
[9,8,7,6,5,4,3,2,1]7.  list2,clear()  清除
>>> list2.clear()
>>> list2
[]

三、列表推导式或列表解析

1.  >>> [ i*i for i in range(10) ]
#你觉得会打印什么内容?
1.  >>> [i*i for i in range(10)]
2.  [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]#例如
1.  >>> list1 = [x**2 for x in range(10)]
2.  >>> list1
3.  [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
#相当于
1.  list1 = []
2.  for x in range(10):
3.      list1.append(x**2)#例如
0.  >>> list1 = [(x, y) for x in range(10) for y in range(10) if x%2==0 if y%2!=0]
#相当于
1.  list1 = []
2.  for x in ragne(10):
3.      for y in range(10):
4.          if x%2 == 0:
5.              if y%2 != 0:
6.                  list1.append((x, y))  

四、例题

list1 = ['1.just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']
#题目答案:
list3 = [name + ‘:’ + slogan[2:] for slogan in list1 for name in list2 if slogan[0] = = name[0]]
#相同作用:
list3 = []
for slogan in list1:for name in list2:if slogan[0] = = name[0]:list3.append((name + ':'+ slogan[2:]))#为了分割出1.2.3.4.
for each in list3:print(each)

13元组


一、创建和访问一个元组,元组的元素是不能修改的

>>> tuple1 = (1,2,3,4,5,6)
>>> tuple1[1]
2
>>> tuple1[3:5]
(4,5)
>>> tuple2 = tuple1[:]  #复制


二、更新和删除
更新、删除时采用拼接的方式改变元组

tuple1 = ('筛子','披萨','阿水','预言家','球皇')
tuple1 = tuple1[:2] + ('左手',) + tuple1[2:]
tuple1
('筛子','披萨','左手','阿水','预言家','球皇')

三、操作符与列表相同

四、课后题
0、请用一句话描述什么是列表?再用一句话描述什么是元组?
  列表:一个大仓库,你可以随时往里边添加和删除任何东西。
  元组:封闭的列表,一旦定义,就不可改变(不能添加、删除或修改)。
  
1、元组的内置函数,仅有两个方法count() and index()可以使用,其他方法都不行。

2、 x, y, z = 1, 2, 3
请问x, y, z是元组吗?
所有的多对象的、逗号分隔的、没有明确用符号定义的这些集合默认的类型都是元组,自己在IDLE中键入以下代码,并体会一下:

>>> x, y, z = 1, 2, 3
>>> type(x)
<class 'int'>
>>> h = x, y, z
>>> type(h)
<class 'tuple'>

3、上节课我们通过课后作业的形式学习到了“列表推导式”,那请问如果我把中括号改为小括号,会不会得到“元组推导式”呢?
   Python3 没有“元组推导式”,为嘛?没必要丫,有了“列表推导式”已经足够了。
  那为什么“>>> tuple1 = (x**2 for x in range(10))”不会报错?
因为你误打误撞得到了一个生成器:

1.  >>> type(tuple1)
2.  <class 'generator'>
#注意,Python3 开始 next() 方法改为 __next__() 哦~
1.  >>> tuple1.__next__()
2.    0
3.  >>> tuple1.__next__()
4.    1
5.  >>> tuple1.__next__()
6.    4
7.  >>> tuple1.__next__()
8.    9
9.  >>> tuple1.__next__()
10.   16
11. >>> tuple1.__next__()
12.   25
13. >>> tuple1.__next__()
14.   36

14字符串:内置方法

一、字符串切片
字符串定义之后,与元组类似,不能轻易修改。
例:
二、各类方法
详细见网址:
https://fishc.com.cn/forum.php?mod=viewthread&tid=38992&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

例如:   本身字符串没改变,返回新的字符串
>>> str1 = 'xiaoxie'
>>> str1.capitalize()
'Xiaoxie'
>>> str1
'xiaoxie'

三、课后题

程序演示:

1.  symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
2.  chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
3.  nums = '0123456789'
4.
5.  passwd = input('请输入需要检查的密码组合:')
6.
7.  # 判断长度
8.  length = len(passwd)
9.
10. while (passwd.isspace() or length == 0) :
11.     passwd = input("您输入的密码为空(或空格),请重新输入:")
12.
13. if length <= 8:
14.     flag_len = 1
15. elif 8 < length < 16:
16.     flag_len = 2
17. else:
18.     flag_len = 3
19.
20. flag_con = 0
21.
22. # 判断是否包含特殊字符
23. for each in passwd:
24.     if each in symbols:
25.         flag_con += 1
26.         break
27.
28. # 判断是否包含字母
29. for each in passwd:
30.     if each in chars:
31.         flag_con += 1
32.         break
33.
34. # 判断是否包含数字
35. for each in passwd:
36.     if each in nums:
37.         flag_con += 1
38.         break
39.
40. # 打印结果
41. while 1 :
42.     print("您的密码安全级别评定为:", end='')
43.     if flag_len == 1 or flag_con == 1 :
44.         print("低")
45.     elif flag_len == 2 or flag_con == 2 :
46.         print("中")
47.     else :
48.         print("高")
49.         print("请继续保持")
50.         break
51.
52.     print("请按以下方式提升您的密码安全级别:\n\
53.     \t1. 密码必须由数字、字母及特殊字符三种组合\n\
54.     \t2. 密码只能由字母开头\n\
55.     \t3. 密码长度不能低于16位'")
56.     break

自己的代码:

print('----------14作业0密码安全性检查代码----------')
password = input('请输入您的密码:')
length =  len(password)
string = '~!@#$%^&*()_=-/,.?<>;:[]{}|\\'
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
flag = 0
alphabet = 0if  password.isalnum() and length <= 8:#字符串至少有一个字符并且所有字符都是数字或字母的返回Trueprint('您的密码满足低级密码要求!')
else :for i in password :if i in string :flag += 1breakfor i in password :if i in chars :flag += 1breakfor i in password :if i in nums :flag += 1breakfor i in chars :if password[0] == i :alphabet = 1breakif flag == 2 and length >= 8 :print('您的密码满足中级密码要求!')elif flag == 3 and length >= 16 and alphabet == 1 :print('您的密码满足高级密码要求!')else :print('您的密码不满足密码的设计要求,请按照下方规定重新设计密码!')print('低级密码要求:密码由单纯的数字或字母组成;密码长度小于等于8位')print('中级密码要求:密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\);任意两种组合密码长度不能低于8位')print('高级密码要求:密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合;密码只能由字母开头;密码长度不能低于16位')

15字符串格式化

一、 str1.format()

二、字符串格式化符号含义及转义字符含义
详情见网址:
https://fishc.com.cn/forum.php?mod=viewthread&tid=92997&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
例子:


三、课后题
0、编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF):
程序演示:

q = True
while q:num = input('请输入一个整数(输入Q结束程序):')if num != 'Q':num = int(num)print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))print('十进制 -> 二进制 : %d -> ' % num, bin(num))else:q = Falsebin() #返回一个整数 int 或者长整数 long int 的二进制表示。

自己的代码:

print('----------15作业0进制转换----------')
temp1 = input('请输入您要转换的进制:(二进制写2;八进制写8;十六进制写16)')
while True :while not temp1.isdigit() :temp1 = input('请输入正确的进制:')Hex = int(temp1)if Hex != 2 and Hex != 8 and Hex != 16 :temp1 = input('请输入正确的进制:')continue  #每次输入进制都必须为数字breaktemp2 = input('请输入您要转换的数:')
while not temp2.isdigit() :temp2 = input('请输入正确的数字:')
num = int(temp2)if Hex == 2 :print('转换后的二进制数为:',bin(num))
elif Hex == 8 :print('转换后的八进制数为:{0}'.format('%#o' % num))
else :print('转换后的十六进制数为:{0}'.format('%#x' % num))print('进制转换结束!')

Python小甲鱼学习笔记11-15相关推荐

  1. Python小甲鱼学习笔记31-35

    31永久存储pickle模块 一.pickle模块 0.pickle的实质是什么?   a.将对象数据以二进制形式保存在文件中   b.将对象数据以二进制形式从文件中读取   输入输出二进制流 1.使 ...

  2. python 小甲鱼——面向对象笔记

    一. 对象=属性+方法 二. self是什么? 三. _ _init __()方法--构造方法 四. 继承 五. 使用super函数 六. 多重继承 七. 组合--(注:类经常被跨模块(文件)组合) ...

  3. python小甲鱼笔记

    提示:python小甲鱼笔记 文章目录 前言 〇.函数 1.常用基本函数 2.常用表函数 3.常用子函数 4.输入.输出 5.字符串函数 5.快捷键 一.常用函数案例 1.文本输出 2.猜数 if 实 ...

  4. 【Python】办公篇-《极客Python之效率革命》(小甲鱼) 笔记一

    〇.前情提要 学习小甲鱼的使用Python读写Excel文件.这是上篇. 参考: [办公篇]<极客Python之效率革命>(小甲鱼)https://www.bilibili.com/vid ...

  5. python学习笔记(15)循环设计

    python学习笔记(15)循环设计 原链:http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html 注意:zip()在python2 ...

  6. (第二版)零基础入门Python小甲鱼-笔记-第三章-p5

    (第二版)零基础入门Python小甲鱼-笔记-第三章-p5 变量和字符串(下) 上节课讲了有些字符比如换行符.TAB制表符还有单引号.双引号等等...可以通过转义字符来实现,今天来谈谈原始字符串 1. ...

  7. 【小盐巴学习笔记】—美团吃饭哪家强?Python词云分析告诉你

    [小盐巴学习笔记]-美团吃饭哪家强?Python词云分析告诉你 效果图 前言 一.爬虫分析 1.分析网址 2.分析数据 二.完整代码 1.爬取美团牛排店评论 2.绘制词云图 3.词云分析 总结 效果图 ...

  8. Python学习笔记11:函数修饰符

    Python学习笔记11:函数修饰符 Python有很多有趣的特性,其中函数修饰符就是一个. 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一 ...

  9. 熊猫的python小课_朋友圈里那个可爱的小熊猫Python编程的学习笔记,学编程,不难!...

    Print( ) 详细请见公众号文章,里面有让人印象深刻,无法忘记的灵魂画手的图画解释.朋友圈里那个可爱的小熊猫Python编程的学习笔记,学编程,不难!​mp.weixin.qq.com 人类有人类 ...

最新文章

  1. python语言怎么用-科学家们是如何使用 Python 语言的?
  2. 原创 MySQL探秘(八):基于Redo Log和Undo Log的MySQL崩溃恢复流程(一致性)
  3. C#编写简单的聊天程序
  4. 从新手到Flutter架构师,一篇就够!吐血整理
  5. break详细讲解啊
  6. 方法覆盖异常篇 java 1615387415
  7. 北京创客空间_世界上最大的创客空间,可增强开放安全性等
  8. 【FatFs】FAT32文件系统协议总结(理论+实践)
  9. matlab vav终端控制器编程,基于TRNSYS与VAV控制系统与仿真.pdf
  10. 5 个关键点!优化你的 UI 原型设计
  11. Error setting non null for parameter #2 with JdbcType null . Try setting a different JdbcType for th
  12. python导入数学函数_Python 数学函数模块(Math)
  13. 坚持-转自网易轻博客LOFTER
  14. python段落注释的语法格式是_python段落注释
  15. 蒸馏 (distill_Distill-BERT:使用BERT进行更智能的文本生成
  16. python 爬虫 requests 错误汇总
  17. 【Java面试题】大厂Java面试题分享
  18. 为什么资源管理对现代企业很重要?
  19. 多边形画椭圆算法java_运用椭圆画法,45行代码画出随意正多边形
  20. 使用TF Service搭建在线服务:part-1

热门文章

  1. 【优化选址】基于遗传算法求解分布式电源的选址定容问题附matlab代码
  2. svn备份/迁移的两种方法
  3. android4以下的音乐播放器,Android平台四大音乐播放器对比评测
  4. Stata:缺失值的填充和补漏
  5. 甲骨文称:IT安全投得多不如投得巧
  6. 用服务器ip抓肉肉鸡还是域名稳定,牢牢抓住肉鸡ip的方法 -电脑资料
  7. Android viewpager在scrollview中的滚动问题
  8. 意能通:一名博士CEO的人工智能创业之旅
  9. Anaconda安装教程粗解
  10. 算法:查找众数及中位数