1.==与is的区别
==是对象value的比较
is是对象id的比较
例:
a = b = 10
c = 10
print(a==c)//true
print(a is c)//true
print(a is b)//true
print(id(a),id(b),id(c))//都相同
# 对于列表
lst1 = lst2 = [11,22,33,44]
lst3 = [11,22,33,44]
print('lst1与lst2值相同:', lst1 == lst2)//true
print('lst1与lst2地址相同:', lst1 is lst2)//true
print('lst1与lst3值相同:', lst1 == lst3)//true
print('lst1与lst3地址相同:', lst1 is lst3)//false
对于单数字的变量,哪怕分开赋值,存储地址也相同。
对于列表,只有链式赋值的存储地址才相同,其他都不同
2.bin()
print(bin(0b1100 & 0b1001))// 0b1000
3.将指定的十进制数转换成二进制、八进制、十六进制(格式化字符串)
格式化字符串:
- % 作为占位符。%s 表示字符串;%i 或 %d 表示整数;%f 表示浮点数。(不建议用)
- { } 作为占位符。花括号里面的值表示索引,若只有一个数据,可以不写索引。
- f-string。Python3中还定义了f字符串方法,可以直接将变量名写进花括号里面。
4.Python中的三元运算符
x = y = 10
print(x if x > 10 else y)//10
5.Python可以将两个与的条件写成连续比较的格式
if 70<=score<80
6.三种字符串判断数字的方法的区别
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
7.range
r = range(1,10,2)
print(list(r)) #[1, 3, 5, 7, 9] 不加list就输出range(1,10,2)
print(2 in r) #False
print(9 in r) #True
注:in
与 not in
判断整数序列中是否存在(不存在)指定的整数。
r1 = range(0, -10, -2)
print(list(r1)) #[0, -2, -4, -6, -8]
8.加空格
for i in range(10):
print(i, end=' ')#要加end=' ',否则全部换行了
9.chr()函数 参考
for i in range(48,58):
print(chr(i),end='') #0123456789
i 可以是10进制也可以是16进制的形式的数字。
函数返回值类型为String,其数值表达式值取值范围为0~255。
返回值是当前整数对应的 ASCII 字符。
格式:ord(“字符串“)
说明: 函数返回值类型为 int类型
例如 : ord(“0”),结果显示:48
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
例:
a = ord('A')
print(a) #65
10.list(列表的索引可以是正向索引,也可以是逆向索引)
list的特点
- 列表元素按顺序有序排序。
- 列表的索引映射唯一一个数据。
- 列表可以存储重复的数据。
- 任意的数据类型都可以在列表中混存。
- Python解释器会根据需要动态分配和回收内存,不需要程序员分配。
list的创建方式
- 使用中括号。
- 调用内置函数list()。
例:
tmp = ['hello', 10, 'world'] #或者用tmp=list(['hello', 10, 'world'])
print(tmp[-2]) #10 根据索引获取元素(指定索引不存在,则抛出IndexError)
print(tmp.index('hello')) #0 根据元素获取索引(查询的元素不存在,则会抛出ValueError)
11.字典的创建方式:
- 使用花括号(最常用)。
- 使用内置函数
dict()
。
例:
score = {'张三':100, '李四':98, '王五':45}
print(score) # {'张三': 100, '李四': 98, '王五': 45}
height = dict(张三=100, 李四=98, 王五=45)
print(height) # {'张三': 100, '李四': 98, '王五': 45}
12.获取字典中的元素有两种方法
- 使用方括号
[ ]
,若字典中不存在指定的key,抛出keyError异常。 - 使用字典方法
.get()
,若字典中不存在指定的key,返回None,也可以设置返回的值。
例:
print('陈六的值:', score.get('陈六', -1)) # -1就是在找不到时返回的值
注:使用in
、not in
两个布尔运算符主要用于查找字符串或列表中是否有相应的元素。当然这对于字典元素来说也适用,但只是用来查找键(key)是否存在。
例:
print('张三' in score)
13.元组的创建方式主要有两种:
- 直接使用小括号。
- 使用内置函数
tuple()
。
例:
tp = ('python', 10, 'hello')
print(tp) #('python', 10, 'hello')
tp2 = 'python', 10, 'hello' #可以省略小括号
print(tp2) #('python', 10, 'hello')
tp3 = ('python',) #不加上小括号和逗号也没报错,但是输出没有带上小括号
print(tp3) #('python',) 若只有一个元素,要加上小括号和逗号
tp4 = tuple(('python', 10, 'hello'))
print(tp4) #('python', 10, 'hello')
tp5 = tuple(('python',))
print(tp5) #('python',) 若只有一个元素,要加上小括号和逗号
一定要注意,若元组只有一个元素,不管采用什么方式,都要加上小括号和逗号。
14. 不可变序列与可变序列的区别
15.集合有两种创建方式:
- 直接使用 { } 。
- 使用内置函数
set()
。
集合(集合就是没有value的字典)的特点
- 集合中的所有元素不允许重复,否则会自动删除。
- 集合中的元素是无序的。
- 集合中的元素必须是不可变对象(比如列表就不可以)。
- 集合也可以根据需要动态地伸缩。
- 集合会浪费较大的内存,也是一种使用空间换时间的数据结构。
- 空集合的定义只能使用内置函数
set()
。
例:
se1 = {'hello', 20.3, 56, 56}
print(se1) #{56, 20.3, 'hello'} 输出并不是固定的,每运行一次结果可能都不一样
16.enumerate()
遍历索引又要遍历元素时:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1): #可以接收第二个参数,用于指定索引起始值
print index, item
17.手动抛出异常对象 raise()
try:
a = int(input('请输入一个[0,100]之间的整数:'))
if 0<=a<=100:
print('分数为:', a)
else:
raise Exception('输入不在范围内') # 手动抛出异常
# raise就是告诉编译器,我给你加了一个报错的情况,名字叫Exception
except Exception as e:
print(e)
输出:
请输入一个[0,100]之间的整数:120
输入不在范围内
18.range:http://t.csdn.cn/2zW4S