一、python2 与python3 的区别

1、在2中print后可带扣号,也可不带,3中必须带,否则报错!

#print 'hello python2'
print('hello python3')

2、在2中有xrange()生成器,也有range(),而3中只有range()

for i in range(1, 10, 2):
print(i)

3、python2中,raw_input()把输入的都当作字符串,而input()输入什么类型就是什么类型-->int类型的时候最好用input()

python3将raw_input和input进行整合成了input....去除了raw_input()函数....其接受任意输入, 将所有输入默认为字符串处理,
并返回字符串类型

input('python3 输入的任何字符都会被视为字符串!')

二、“=”,“==”与“is”的区别 id(内容) ->查看内容的内存地址

“=” 赋值
“==”比较值是否相等
“is”比较的是内存地址是否相同
li1 = [1, 2, 3]
li2 = li1
print(li1 == li2)
print(li1 is li2)
print(id(li1), id(li2))
三、python中的小数据池 (为节约空间,将小段数据只保存一份在内存中)
    只有字符串、数字在该池中;
    数字的范围是:-5 -- 256 在池中
    字符串:1)不能含特殊字符
   2)S*20 还是同一内存地址,S*21以后就是两个内存地址了(S表示单个英文字符) --> 实际测试不准,如100个a,内存地址却相同
 s1 = 'abcd中'
s2 = 'abcd中'
print(id(s1), id(s2)) # 此环境下是相同的,windows命令行下是False n1, n2 = 6, 6
print(n1 is n2)
n3, n4 = 300, 300
print(n3 is n4) # 在此环境下是True,在window10 命令行下如此写也是True
n5 = 300
n6 = 300
print(n5 is n6) # 在此环境下是True,在window10 命令行下如此却是False

    其他数据类型如:list、dict、tuple、set不包含在小数据池中

tu1 = ("", 2)
tu2 = ("", 2)
print(tu1 is tu2) # 输出False

四、基本数据类型知识小结

  到目前为止,接触到的基本数据类型有:

  int、str、list、bool、tuple、dict、bytes

  1、int
# int.bit_length()
# int.to_bytes()
# int.from_bytes()
# int.mro() # 2、str
#str.isspace() # 3、list
'''
补充一个循环列表,删除元素时越界的问题:在列表循环过程中删除列表中的元素(避免)
'''
# 越界的示例:删除过程中,列表在改变
# for i in range(len(li)):
# if(i%2 == 1):
# li.pop(i) li = [11, 22, 33, 44, 55] # 需求,循环上述列表li,删除奇数数位的值
# 普通方法
li_odds = li[1::2]
for i in li_odds:
li.remove(i)
print(li)
# 高级方法
for i in range(len(li)-1, -1, -1): # range(start, stop[, step]) 即顾头不顾尾:从4开始到-1,即4,3,2,1,0,步长是-1,因为是倒着数
print(i)
if i % 2 == 1:
del(li[i])
print(li) for i in range(5, 0, -1): # 倒数5到0,没有0,所以是:5,4,3,2,1
print(i) # 4、bool
# 转化成bool值
# 各种可转换成False的 : 0 '' [] () {} set()
print(bool(0), bool(''), bool([]), bool(()), bool({}), bool(set())) # 5、tuple 元祖
tu1 = (1) # 如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型。
tu2 = (1,)
print(type(tu1), type(tu2)) # 打印结果:<class 'int'> <class 'tuple'> tu3 = ([1])
tu4 = ([1],)
print(type(tu3), type(tu4)) # 打印结果:<class 'list'> <class 'tuple'> l1 = []
l2 = l1
l3 = l1
l3.append('a')
print(l1, l2, l3) # ['a'] ['a'] ['a'] dic1 = dict.fromkeys([1, 2, 3], 4)
print(dic1) # 结果是:{1: 4, 2: 4, 3: 4}
print(dic1[1]) # 结果肯定是4 # 6、dict dic = dict.fromkeys([1, 2, 3], '春哥')
print(dic)
dic = dict.fromkeys([1, 2, 3], [])
print(dic) # {1: [], 2: [], 3: []}
dic[1].append('袁姐')
print(dic) # {1: ['袁姐'], 2: ['袁姐'], 3: ['袁姐']}
dic[2].extend('二哥') # extend用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
print(dic) # {1: ['袁姐', '二', '哥'], 2: ['袁姐', '二', '哥'], 3: ['袁姐', '二', '哥']} dic2 = dict.fromkeys([1, 2, 3], [1])
dic2[1].append('东西') # 添加到一个value列表,结果都添加了
print(dic2) # # # # 删除keys中不包含k字母的字典元素#############
# # 原则是,集合在循环中不能删除自己的元素,即集合自带的删除方法不要使用,用系统给的del()
# 方法一:
dic4 = {'k1': 'v1', 'k2': 'v2', 'a3': 'v3'}
dic5 = {} for i in dic4:
if 'k' not in i: # 字符串的成员运算符 - 如果字符串中不包含给定的字符返回 True
dic5.setdefault(i, dic4[i])
# 完成上述循环后,dic5 = {'a3': 'v3'}
dic4 = dic5 # 将dic5的值赋给dic4,覆盖原来的值
print(dic4) # {'a3': 'v3'} # 方法二:
li_tmp = []
for j in dic4:
if 'k' not in i:
li_tmp.append(j)
for k in range(len(li_tmp) - 1, -1, -1):
del(dic4[k])
print(dic4) # 简化版本
l = []
for i in dic4:
if 'k' in i:
l.append(i)
for i in l:
del dic4[i]
print(dic4)

python基础之八:知识小结及补充的更多相关文章

  1. 一、python基础相关知识体系

    python基础 a. Python(解释型语言.弱类型语言)和其他语言的区别? 一.编译型语言:一次性,将全部的程序编译成二进制文件,然后在运行.(c,c++ ,go) 运行速度快.开发效率低 二. ...

  2. html5-基本知识小结及补充

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. python基础之知识补充-作用域、特殊语法

    python作用域 无函数的作用域 在python中没有块级作用域 什么叫块级作用域呢?先来看个例子: if 1 == 1: name= 'alex' print(name) 运行结果为alex 在j ...

  4. 第一阶段——CentOS6_Python3.6.1笔记(尚学堂-Python基础快速入门)+ 【补充】麦子-Python程序入门与进阶

    虚拟机环境: 设置网络 .修改网络地址 .设置网卡为nat模式 .确保物理机启动dhcp.net服务 .编辑文件:vim /etc/sysconfig/network-scripts/ifcfg-et ...

  5. Python基础入门知识

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  6. python基础之字典、赋值补充

    字典常用操作: 存/取info_dic={'name':'egon','age':18,'sex':'male'} print(info_dic['name11111111']) print(info ...

  7. python基础小知识,is和==的区别,编码和解码

    1.is和==的区别 1)id() 通过id()我们可以查看到一个变量表示的值在内存中的地址 >>> s1 = "Tanxu" >>> s2 = ...

  8. Python基础-语法知识

    ——编程语言的发展史 机器语言 优点:执行速度够快 缺点:开发效率非常低 汇编语言 优点:执行效率相较于机器语言略低 缺点:开发效率相较于机器语言略高 高级语言 C.C++.C#.java.PHP.p ...

  9. 10个Python基础练习项目,你可能不会想到练手教程还这么有趣

    美国20世纪最重要的实用主义哲学家约翰·杜威提出一个学习方法,叫做:Learning By Doing,在实践中精进.胡适.陶行知.张伯苓.蒋梦麟等都曾是他的学生,杜威的哲学也影响了蔡元培.晏阳初等人 ...

随机推荐

  1. Redis数据结构及常用命令(草稿)

    通用命令 数据类型 string 字符 list 列表 set 集合 zset 有序集合 hash 散列(字典中的字典) bitmap 位图 hyperloglog

  2. SPA框架 Angular、React、Vue

    指尖前端重构(React)技术调研分析   摘要:重构前的技术文档调研与分析,包括技术选型为什么选择react,应用过程中的注意事项等. 一.为什么选择React React是当前前端应用最广泛的框架 ...

  3. windows环境中hbase源码编译遇到的问题

    转载请注明出处 问题一 [ERROR] Failed to execute goal org.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugs (d ...

  4. windows上redis的安装和配置

    windows上redis的安装和配置 进入到Redis的根目录D:\Programming\Redis\Redis6379\Redis-x64-3.2.100底下操作: 配置文件启动 redis-s ...

  5. Python转义序列

    正则表达式参考:https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

  6. 【生活现场】从打牌到map-reduce工作原理解析(转)

    原文:http://www.sohu.com/a/287135829_818692 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 对小史面试 ...

  7. 设置a标签,实现点击跳转页面的两种效果

    设置a标签,实现点击跳转页面 这个问题,主要是设置a标签的属性target,下面对target属性进行描述: 跳转在同一个窗口 1,target="_self",  它使得目标文档 ...

  8. java获取调用当前方法的方法名和行数

    java获取调用当前方法的方法名和行数String className = Thread.currentThread().getStackTrace()[2].getClassName();//调用的 ...

  9. vue+element下拉框样式的点击按钮

    项目中点击按钮实在太多了,怎么办呢?我们就可以将它们制作成像下拉框那样的类似操作 1.HTML样式部分:关键点在于command 方法和属性 1 <el-dropdown 2 size=&quo ...

  10. CTF-代码审计(1)——parse_str()变量覆盖

    题目连接:http://222.18.158.226:7000/iscc.php 考点:parse_str()变量覆盖 代码: PHP知识点: 1.parse_url() 参照网址:https://w ...