一、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. Github库名命名规范

    必要性说明 由于迁移到Github上的项目越来越多,对项目的管理越来越困难.由于各项目命名具有随意性,用之代表git仓库名后就很难快速回忆起这个项目的相关细节,通常需要不断打开某个库才能有所了解.因此 ...

  2. Redis 内存管理 源码分析

    要想了解redis底层的内存管理是如何进行的,直接看源码绝对是一个很好的选择 下面是我添加了详细注释的源码,需要注意的是,为了便于源码分析,我把redis为了弥补平台差异的那部分代码删了,只需要知道有 ...

  3. 并查集 + 路径压缩(经典) UVALive 3027 Corporative Network

    Corporative Network Problem's Link Mean: 有n个结点,一开始所有结点都是相互独立的,有两种操作: I u v:把v设为u的父节点,edge(u,v)的距离为ab ...

  4. Delphi 10.3.2 社区版的安装

    1.去 https://www.embarcadero.com/cn/products/delphi/starter 下载安装程序 首先你要有一个embarcadero社区账号,国内线路下载有点慢,下 ...

  5. Mysql序列(八)—— group by排序问题

    在mysql中,group by默认会执行排序: By default, MySQL sorts GROUP BY col1, col2, ... queries as if you also inc ...

  6. EF启程--概念理解(数据库连接)

    简介:Entity Framework 是一种支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM). 它不要求提供开发人员通常需要编写的大部分数据访问代码. 其中有E ...

  7. 《Netty 权威指南(第2 版)》目录

    图书简介:<Netty 权威指南(第2 版)>是异步非阻塞通信领域的经典之作,基于最新版本的Netty 5.0 编写,是国内很难得一见的深入介绍Netty 原理和架构的书籍,也是作者多年实 ...

  8. poj3045 Cow Acrobats (思维,贪心)

    题目: poj3045 Cow Acrobats 解析: 贪心题,类似于国王游戏 考虑两个相邻的牛\(i\),\(j\) 设他们上面的牛的重量一共为\(sum\) 把\(i\)放在上面,危险值分别为\ ...

  9. mybatis源码/mybatis执行流程源码解析

    https://www.cnblogs.com/cxiaocai/tag/%E9%9D%A2%E8%AF%95%E9%A2%98/public SqlSession session; public S ...

  10. centos如何强行踢掉某登录用户

    linux是一个多用户操作系统,用户可以在不同的地方链接上LINUX服务器. 在系统中我们可以用w或者who来查看用户: [root@7273 ~]# who root pts/0 2019-04-1 ...