一、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. QSS文件美化界面无效

    问题描述: 同样的qss内容,内置有效,写进qss文件加载无效. 搜寻.........很多网友的经理是qss文件编码和qt文本编辑器的属性........而我怎么尝试,怎么失败. 解决方案: 从fi ...

  2. Golang 基础语法介绍及对比(二)

    传值与传参 Golong func main() { a := fmt.Println("a = ", a) // 应该输出 "a= 3" a1 := add1 ...

  3. Airtest网易开源的一款UI自动化测试工具

    Airtest网易开源的一款UI自动化测试工具 1 Airtest 简介Airtest Project是网易游戏内部工具团队开发并开源的一款UI自动化测试工具,据说曾经获得谷歌力挺. AirtestI ...

  4. Java一个简单的重试工具包

    在接口调用中由于各种原因,可能会重置失败的任务,使用Guava-Retrying可以方便的实现重试功能. 首先,需要引用Guava-Retrying的包 <dependency> < ...

  5. 书籍推荐-An introduction to Data Science

    为什么要读这本书? 该书是由我们老师推荐的,通过学习此数,可以了解R语言的使用,也可以知道基本的数据分析方法. 看到Creating a Data Set in R -- 24页面

  6. Editor模式下实例化Prefab

    PrefabUtility.InstantiatePrefab//需要关联 GameObject.Instantiate//不需要关联

  7. commitizen规范代码提交

    转载链接:https://www.jianshu.com/p/bd712e42f2e9 参考链接:https://segmentfault.com/a/1190000009048911 平时提交的变动 ...

  8. bizcharts 图表内容居中

    当图表内的数据只有一组时,会紧靠在y轴上,如下图: 想要图表的内容居中,解决方法分两种情况. 第一种:如果x轴是日期,则代码设置如下,图表的内容就居中了 const cols = { x: { ali ...

  9. Java for循环每次都通过list.size()和 string.length()获取大小是否消耗性能?

    前言 有人说在for循环之前用一个局部变量先获取到list.size().str.length(),然后在for循环的判断条件里通过这个局部变量替换list.size().str.length()会节 ...

  10. idea中maven项目打jar包

    从Eclipse换成Idea的小伙伴们可能会找不到Eclipse中Maven项目打jar包的方法,因为eclipse只需要在工程上点击右键,右键菜单中就有Maven打包的相关选项. 然而Idea的右键 ...