2020-12-02 python训练营day_01

算术运算符

// 整除(地板除) 3 // 4
print(3 // 4) # 0

** 幂 2 ** 3

print(2 ** 3)  # 8

逻辑运算符

and 与 (3 > 2) and (3 < 5)
or 或 (1 > 3) or (9 < 2)
not 非 not (2 > 1)

位运算符

~ |按位取反|~4
& |按位与 |4 & 5
| |按位或 |4 | 5
^ |按位异或|4 ^ 5
<<|左移 |4 << 2
>>|右移 |4 >> 2

print(bin(4))  # 0b100
print(bin(5))  # 0b101
print(bin(~4), ~4)  # -0b101 -5
print(bin(4 & 5), 4 & 5)  # 0b100 4
print(bin(4 | 5), 4 | 5)  # 0b101 5
print(bin(4 ^ 5), 4 ^ 5)  # 0b1 1
print(bin(4 << 2), 4 << 2)  # 0b10000 16
print(bin(4 >> 2), 4 >> 2)  # 0b1 1

三元运算符

small = x if x < y else y

其他运算符

in 存在 ‘A’ in [‘A’, ‘B’, ‘C’]
not in 不存在 ‘h’ not in [‘A’, ‘B’, ‘C’]
is 是 “hello” is “hello”
not is 不是 “hello” is not “hello”

is, is not 对比的是两个变量的内存地址
==, != 对比的是两个变量的
比较的两个变量,指向的都是地址不可变的类型,那么is,is not 和 ==,!= 是完全等价的。
对比的两个变量,指向的是地址可变的类型,则两者是有区别的。

Python中的数据包括:Number(包括Int,Float,Bool和Complex),String,Tuple,List,Dict,Set。
这几种数据类型按照是否可变,有如下分类:
不可变类型:NumberStringTuple(运算后会重新创建新的对象)
可变类型:ListDictSet(无论创建多少个,只要值相同,都指向同个内存地址;所以改一个,另一个也会改)

运算符的优先级

一元运算符优于二元运算符。
先算术运算,后移位运算,最后位运算。
逻辑运算最后结合。

变量和赋值

在使用变量之前,需要对其先赋值。
变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
Python 变量名是大小写敏感的,foo != Foo。

数据类型与转换

类型名称示例
int整型<class ‘int’> -876, 10
float浮点型<class ‘float’> 3.149, 11.11
bool布尔型<class ‘bool’> True, False
a = 1532
print(a, type(a))
# 1031 <class 'int'>

除了直接给变量赋值 True 和 False,还可以用 bool(X) 来创建变量,其中 X 可以是
基本类型:整型、浮点型、布尔型
容器类型:字符串、元组、列表、字典和集合

bool 作用在基本类型变量:X 只要不是整型 0、浮点型 0.0,bool(X) 就是 True,其余就是 False。
bool 作用在容器类型变量:X 只要不是空的变量,bool(X) 就是 True,其余就是 False。

确定bool(X) 的值是 True 还是 False,就看 X 是不是空,空的话就是 False,不空的话就是 True。

对于数值变量,0, 0.0 都可认为是空的。
对于容器变量,里面没元素就是空的。

要判断两个类型是否相同推荐使用 isinstance()
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。

print函数

end参数的默认值为\n。没有参数时,每次输出后都会换行。
每次输出结束都用end设置的参数&结尾,并没有默认换行。
print(1, end='&')

dic = {'a':1, 'b':2, 'c':3}
for key,value in dic.items():
    print(key, value, sep=':',end=" ")
# a:1 b:2 c:3

位运算

略过

条件语句

if(2>1 and not 3>2):
    print("成功")
else:
    print('失败')
temp = input("猜一个数字:") # input自动转成str

循环

s[:-1] # 等价于 s[0:len(s)],除了最后一个元素

range()函数——左闭右开

range([start,] stop[, step=1])

enumerate()函数

enumerate(sequence, [start=0])

  • sequence:一个序列、迭代器或其他支持迭代对象。
  • start:下标起始位置。
  • 返回 enumerate(枚举) 对象
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))

enumerate()与 for 循环的结合使用。

for i, a in enumerate(A)
    do something with a  

用 enumerate(A) 不仅返回了 A 中的元素,还顺便给该元素一个索引值 (默认从 0 开始)。此外,用 enumerate(A, j) 还可以确定索引起始值为 j。

【例子】

languages = ['Python', 'R', 'Matlab', 'C++']
for language in languages:
    print('I love', language)
print('Done!')
# I love Python
# I love R
# I love Matlab
# I love C++
# Done!
​
​
for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
print('Done!')
# 2 I love Python
# 3 I love R
# 4 I love Matlab
# 5 I love C++
# Done!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值