一、对python中.pyc的理解

1).pyc文件可以理解为是python编译好的字节码文件,即只有python解释器才能读懂,类似于java中class文件

2)python运转过程:

当python程序运转时,编译的结果是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中

当程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如找到,则直接载入,否则就重复上面的过程。

总结:PyCodeObject和pyc文件关系,pyc文件其实是PyCodeObject的一种持久化方式

二、数据类型

1、数字

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-21478483548~2147483647

在64位机器上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~

long(长整形)

跟C语言不同的是,Python的长整数没有指定位宽,即:python没有限制长整数数值大小,但实际上由于机器内存的有限,我们使用的长整数数值不可能是无限大

注意:自从python2.2之后,如果整数发生溢出,python会自动将整数数据转换为长整数,所以如今长整数数据后面不加字母L也不会导致严重后果了

float(浮点型)

  浮点数主要是用来处理实数,即带有小数的数字,类似C语言中的double类型,占8个字节(64位),其中52表示底,11位表示指数,剩下的一位表示一位表示符号。

布尔值

  真或假

  1或0

字符串

“Hello World”

万恶的字符串拼接:

  Python中的字符串在C语言中体现是为了一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,并且一旦开启需要修改字符串的话,就需要再次开辟空间,万恶的“+”号每次出现一次就会在内存中重新开辟一块空间。

一般字符串输出格式:

2、列表

  写法:name_list = ['dayi','daer','dasan']        #列表必须是用[]

  或者

  name_list = list(['dayi','daer','dasan'])

  1. AA = [32,45,6,7,8,975,3,5,65,6,62121,2,3,3,44,55,]
  2. if 3 in AA:
  3. num_of_ele = AA.count(3) #查找在列表中为3的元素
  4. position_of_ele = AA.index(3) #利用索引找到为3元素的位置,并将为三的元素转换给变量position_of_ele
  5. AA[position_of_ele] = 'xiaoxiao' #对变量重新赋值
  6. print("[%s] 3 is/are in AA,postion:[%s]"%( num_of_ele,position_of_ele))
  7. print(AA)
  8. for i in range(AA.count(3)): #for循环 查找列表中出现为3的元素,,
  9. ele_index = AA.index(3) #并且找到为3元素的索引
  10. AA[ele_index] = '' #再为3的元素进行重新赋值
  11. print(AA)
  12. #追加 extend:扩展新的列表 把两个列表合并
  13. aa = ['xiaoluo','lcj','ljk','']
  14. AA.extend(aa) #将列表aa中的元素追加至列表AA列表中,如有元素有重复不影响
  15. print(AA)
  16. print(aa)
  17. #reverse :翻转列表中各元素,不改变列表中的各个元素
  18. AA.reverse()
  19. print(AA)
  20. #给列表排序 sort 注意:python3.0不支持列表中的字符串和数据混合排序,python2.0则支持
  21. #先数字,在字符串,特殊符号、、、
  22. # AA.sort()
  23. # print(AA)
  24. print(aa)
  25. #pop方法:只默认删除列表中最后一位元素,也可指定列表中的元素
  26. aa.pop()
  27. print(aa)
  28. aa.pop('lcj') #指定删除aa列表中的lcj元素
  29. print(aa)

  列表的基本操作:

  1)索引:python中的索引又称下标(下标就是列表中各元素的排序序号,从0开始)

  2)切片:即指定那些元素切换出来,不影响之前列表中各元素,即可层层切换出需要的元素[切1][切2][切2.2]

  3)修改:对列表已知的元素进行修改,此时,用到变量,即是给需要修改的值进行重新赋值

 

 3)插入(insert):,一次只能插入一个值,注意插入的符号为()

  4)追加(append):一般列表最后追加一个元素

  

  5)删除(remove):

  6)字符串步长

  1. r = '1234567890'
  2. print(r[:]) #1234567890
  3. print(r[1:]) #234567890左闭右开,从左至右以第一个字符开始直到最后字符串结束
  4. print(r[2:]) #34567890
  5. print(r[3:]) #4567890 从第三个字符开始直到最后元素结束
  6. print(r[1:2]) #2
  7. print(r[1:5]) #2345
  8. print(r[::2]) #13579 按照步长为两个字符进行输出
  9. # print(r[1:-1])
  10. print(r[-1:1]) #无字符串输出
  11. print(r[1:-1]) #23456789

  练习:

  1. #1、找出列表中有多少个9,把他改成9999
  2. #2、同时找出所有的34,并把他删除
  3. name = [34,45,43,34,34,34,3,3,45,5,76,9,6,9,34,34,3,2,3,9,12]
  4. if 9 in name:
  5. num_of_ele = name.count(9) #统计列表中为9的元素对的个数,没找到一个自增加1
  6. position_of_ele = name.index(9) #查找元素9的索引
  7. name[position_of_ele] = '' #对列表中元素通过变量重新赋值
  8. print('[%s] 9 is/are name, postion:[%s]'%(num_of_ele,position_of_ele))
  9. print(name)
  10. for i in range(name.count(9)): #通过for循环查找列表中9的元素
  11. ele_index = name.index(9) #查询列表中9的索引
  12. name[ele_index] = ''
  13. print(name)
  14. for i in range(name.count(34)): #删除列表中34的元素
  15. #ele_index2 = name.index(34)
  16. name.remove(34)
  17. print(name)

  三、字典(dist)无序

  创建字典格式:dist = {"dd","ff","gg","hh",43}

  dist = ({"name":“mr.wu”,'age':32})

  字典中可嵌套数据:

  shop = {'家电类':[('电视',2999),('冰箱',3999),('洗衣机',2999),('热水器',5000)]}

  1)、提取字典中某一个元素:print(dict[dict的key])

  2)、修改字典中某一个元素:dict[key]['value'] = '新的值'

  3)、字典中插入某一个元素:dict[key]['插入元素'] = ‘值’

  4)、字典中删除某一元素:dict[key].pop(‘values’)

  5)、获取字典中的元素:get方法。例如:dict.get[‘values’]

  6)、更新字典update方法:

  将dict2中的元素更新至dict1中:dict1.update(dict2)

  7)、字典for循环

  方法一:for k,v in dict.items():     #效率低,当数据量大时,字典转换成列表耗时慢

 print(k,v)

  方法二:for key in dict.items():    #在列表中查找key值,并将key中的value值打印出

 print(key,dict.[key])

  1. dictionary_lcj = {
  2. 4210221990012215234:{
  3. 'user_name':'hhh',
  4. 'age':22,
  5. 'Address': '北京'
  6. },
  7. 4210221990012215233:{
  8. 'user_name':'jjj',
  9. 'age':22,
  10. 'Address': '上海'
  11. },
  12. 4210221990012215236:{
  13. 'user_name':'kkk',
  14. 'age':22,
  15. 'Address': '天津'
  16. }
  17. }
  18. user2 = {
  19.  
  20. 4210221990012215236: {
  21. 'user_name': 'kkk',
  22.  
  23. 'Address': '天津'
  24. }}
  25.  
  26. # print(dictionary_lcj)
  27. # print(dictionary_lcj[4210221990012215236]) #在字典中提取某一字典数据
  28. # dictionary_lcj[4210221990012215236]['Address'] = '广州' #对字典中元素进行重新赋值,注意:字典格式为{},列表格式为[]
  29. # print(dictionary_lcj)
  30. # dictionary_lcj[4210221990012215236]['qq'] = 2132323 #在字典中插入新增加元素,先提取嵌套字典,在对新增加的元素进行赋值
  31. # print(dictionary_lcj)
  32. # dictionary_lcj[4210221990012215236].pop('Address') #删除字典中指定的元素,注意
  33. # print(dictionary_lcj)
  34. #获取字典中元素:get
  35. # dictionary_lcj.get(4210221990012215236)
  36. # v = dictionary_lcj[4210221990012215236] #将嵌套的字典赋予一个变量,打印变量
  37. # print(v)
  38. #update更新字典,将user2中的元素更新至dictionary_lcj
  39. # dictionary_lcj.update(user2)
  40. # print(dictionary_lcj)
  41. #items元素:把字典变成为一个元祖或者一个列表,当数据量较多时不建议把字典转化为列表,
  42. # print(dictionary_lcj)
  43. # print(dictionary_lcj.items())
  44.  
  45. #元素:values----》将所有字典中values值
  46. #print(dictionary_lcj.values())
  47. #元素:keys------》打印字典中国所有的key值,
  48. #print(dictionary_lcj.keys())
  49.  
  50. #判断一个某一个k是否存在于字典中
  51. print(421022199001221523623 in dictionary_lcj)
  52. #元素:setdefault,表示在字典中如果key值存在则打印,否则key值不存在,系统默认返回一个None值,也可在指定返回的值
  53. #print(dictionary_lcj.setdefault(421022199001221523623),'哈哈') #表示当k值不存在,则返回‘哈哈’
  54. #fromkeys:把列表中每一个值当做字典中的 一个k,并把这个值赋值给这个K,大王说这是一个抗,还没说是啥抗
  55. # print(dict.fromkeys([1,2,3,4],'lcj')) #通过默认的字典调用者个列表
  56. # print(dictionary_lcj.fromkeys([1,2,3,4],'lcj'))
  57. # #popitem:随机删除字典中元素,当数据量较大时明显,python中一般不建议使用随机方法
  58. # print(dictionary_lcj.popitem())
  59. # print(dictionary_lcj)
  60.  
  61. #字典for循环
  62. for k ,v in dictionary_lcj.items(): #效率低,有一个字典转换为一个列表的过程
  63. print(k,v)
  64. for key in dictionary_lcj: #查找dictionary_lcj中key值,再讲key中的值打印出
  65. print(key,dictionary_lcj[key])

   8、枚举方法:

  1. 方法:numerate,将数组a中的元素赋值为一个元祖,并把元祖的下标打印

 四、元组

  元组为不可变得列表:  tuple一旦初始化就不能修改

  ages  = (12,33,22,45,67) 或 ages = tuple((21,32,43,54,74))

  五、常用字符串方法补充

  1、判断字符串中是否存在空格  

  1. name = "lc j "
  2. print(" "in name) #判断字符串中是否存在空格。返回True则存在,False:不存在

  2、判断输入是否是数字:isdigit

  1. age = input("your age:")
  2. if age.isdigit(): #判断输入是否是数字
  3. age = int(age)
  4. print(age)
  5. else:
  6. print("请输入数字!!!")

  3、判断输入是否是阿拉伯数或者数字,不包含特殊字符

  元素:isalnum

  1. #判断输入是否是阿拉伯数字或数字
  2. name = 'laj123'
  3. print(name.isalnum()) #如打印为True则表示输如是数字或者阿拉伯数字,不含包含特殊字符

  4、判断以某某开始或结束

  开始:startwith

  结束:endwith

  1. name = "lcj123"
  2. print(name.startswith('l')) #判断是否是字符串开始
  3. print(name.endswith('123')) #判断是以某某结束,True:表示是,False:表示否

  4、规定字符串输出是否按照大小写输出

  upper或lower

  1. name = "lcj123dsds"
  2. print(name.upper()) #将字符串按照大写输出
  3. print(name.lower()) #将字符串按照小写输出

  5、将字符串首字母按照大写进行输出

  capitalize

  1. name = "lcj123"
  2. print(name.capitalize()) #将字符串首字母按照大写输出

  6、去掉字符串中前后空格

  #strip()

  1. username = input("user:")
  2. if username.strip() == 'lcj': #将输入的字符串前后空格去掉
  3. print("welcome")

  三、计算

  1、算数运算:

  2、比较运算符

  3、赋值运算

  4、逻辑运算

  5、成员运算

  6、位运算

  7、运算符优先级

  8、身份运算

python_Day_02[数组、列表、元组之篇]的更多相关文章

  1. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  2. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  3. python列表元组

    python列表元组 索引 切片 追加 删除 长度 循环 包含   定义一个列表 my_list = []     my_list = list()   my_list = ['Michael', ' ...

  4. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  5. 小甲鱼:Python学习笔记002_数组_元组_字符串

    创建普通数组 >>> member=["山东黄金","九阳股份"] >>> member ['山东黄金', '九阳股份'] ...

  6. 巨蟒python全栈开发-第4天 列表&元组&range

    今日内容大纲 1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操 ...

  7. 4.Python的不堪一击到初学乍练(列表,元组)

    Python(列表,元组) 一.列表 列表初识 列表是python的基础数据类型之一,其他编程语言也有类似的数据类型. 比如JS中的数组, java中的数组等等,它是以[ ]括起来, 每个元素用&qu ...

  8. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  9. 2.9高级变量类型操作(列表 * 元组 * 字典 * 字符串)_内置函数_切片_运算符_for循环

    高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...

  10. ArrayList数组列表

    ArrayList数组列表 Collection接口和List接口的区别 List接口扩充了Collection接口,添加了索引相关的方法. code example Object get(int i ...

随机推荐

  1. 控制HTML的input控件的输入内容

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  2. php大力力 [003节]php在百度文库的几个基础教程mac环境下文本编辑工具

    2015-08-22 php大力力003.mac环境下文本编辑工具 在windows下,使用notepad特别多.在mac下使用“备忘录”app,word,反而没有存储过txt后缀等不同文本. mac ...

  3. 深入分析:Fragment与Activity交互的几种方式(二,使用Bundle)

    首先我们需要在Activity中动态添加Fragment时,用Bundle封装我们需要传递的数据. public void button(View view) { ArgFragment arg = ...

  4. FR #2题解

    A. 考虑把(u,v)的询问离线挂在u上,然后dfs,每次从fath[x]到[x]相当于x子树dis区间加1,x子树以外区间-1,然后维护区间和区间平方和等. 常数略大. #include<io ...

  5. HDOJ-三部曲-1015-The Cow Lexicon

    The Cow Lexicon Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) To ...

  6. 自从学了SQL编程,哪里不会点哪里!!!

    在学习SQL编程前,先给大家分享几个段子吧,咱先乐呵乐呵! <桃花庵--程序员版> 写字楼里写字间,写字间中程序员:程序人员写程序,又将程序换酒钱: 酒醒只在屏前坐,酒醉还来屏下眠:酒醉酒 ...

  7. BZOJ2243 (树链剖分+线段树)

    Problem 染色(BZOJ2243) 题目大意 给定一颗树,每个节点上有一种颜色. 要求支持两种操作: 操作1:将a->b上所有点染成一种颜色. 操作2:询问a->b上的颜色段数量. ...

  8. Rest文件上传

    文件上传时传过来一个stream 代码如下: /// <summary> /// 上传文件 /// </summary> /// <param name="fi ...

  9. 转:设置session过期时间

    在Asp.net应用中,很多人会遇到Session过期设置有冲突.其中,可以有四处设置Session的过期时间: 一.全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-状态管理-会 ...

  10. LeetCode Find the Duplicate Number 找重复出现的数(技巧)

    题意: 有一个含有n+1个元素的数组,元素值是在1-n之间的整数,请找出其中出现超过1次的数.(保证仅有1个出现次数是超过1的数) 思路: 方法一:O(nlogn).根据鸽笼原理及题意,每次如果< ...