@[Toc]
一些注意事项
- python要区分大小写
- 缩进非常重要
变量、运算符与数据类型
1.注释
为什么使用注释?
阐述代码要做什么以及是如何做的
基本内容
-
#
用于 单行注释 -
''' '''
,""" """
用于多行注释(例子不举了)
2.运算符
算术运算符
操作符 | 名称 |
---|---|
+ |
加 |
- |
减 |
* |
乘 |
/ |
除 |
// |
整除 |
% |
取余 |
** |
幂 |
算术运算符的操作与数学上的没什么区别,但值得注意的是//
==不遵循四舍五入原则,运算取整时保留整数的下界,即偏向于较小的整数.==
【例子】
print(11//3) # 3.65656565->3
print(11//5) # 2.2->2
比较运算符
查看 Datawhale 01. 变量、运算符与数据类型即可知道
逻辑运算符
and
与
or
或
not
非
例子看Datawhale 01. 变量、运算符与数据类型
成员运算符
in
not in
例子看Datawhale 01. 变量、运算符与数据类型
身份运算符
is
is not
例子看[Datawhale 01. 变量、运算符与数据类型]
位运算符
Datawhale 01. 变量、运算符与数据类型
三元运算符
【例子】
x, y = 4, 5
if x < y:
small = x
else:
small = y
print(small) # 4
【例子】
x, y = 4, 5
small = x if x < y else y # 三元运算符
print(small) # 4
运算符的优先级
下表按照==从高到低==的顺序列出了所有运算符的优先级
变量与赋值运算符
-
为什么有变量?
python语法基础之一,使用变量保存数据
-
变量如何定义
- 变量名可以使用字母,数字,下划线,但只能以字母,下划线开头
- 不能使用python中的内置函数名或保留字
-
=
为赋值运算符注意赋值运算符与数学中的
=
慨念不同【例子】
print(x+=2) # ->x = x+2,在数学中不成立
3.数据类型与转换
常见的数据类型
类型 | 名称 | 示例 |
---|---|---|
int | 整型 |
-876, 10 |
float | 浮点型 |
3.149, 11.11 |
bool | 布尔型 |
True, False |
str | 字符串型 |
'hello' ,"hello" |
在python中可以使用type
函数对变量的类型进行检查
【例子】通过 print()
可看出 a
的值,以及类 (class) 是int
。
a = 1031
print(a, type(a))
# 1031
类型转换
通过python的内置函数可实现不同类型之间的强制转换.
-
int()
:将一个数值或字符串转换成整数,可以指定进制。 -
float()
:将一个字符串转换成浮点数。 -
str()
:将指定的对象转换成字符串形式,可以指定编码。
位运算
1.原码,反码,补码(二进制的三种表达形式)
计算机内部使用补码表示
二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用==补码==来表示。
原码:就是其二进制表示(注意,有一位符号位)。
00 00 00 11 -> 3
10 00 00 11 -> -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
00 00 00 11 -> 3
11 11 11 00 -> -3
补码:正数的补码就是原码,负数的补码是反码+1。
00 00 00 11 -> 3
11 11 11 01 -> -3
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。
2.三种进制之间如何相互转换
【例子】
0o1, 0o20, 0o377 -> 1,16,255
# 八进制常用表示,0o或者0O开头,后面接数字
0x01, 0x10, 0xFF -> 1,16,255
# 十六进制常用表示,0x或者0X开头,后面接0-9,A-F
0b1, 0b10000, 0b11111111 -> 1,16,255
# 二进制常用表示,0b开头,后面接01组成的数字
【强制转换】
oct(64), hex(64), bin(64)
('0o100', '0x40', '0b1000000')
3.各种按位操作
参考Datawhale 02位运算
注意:
- Python中
bin
一个负数(十进制表示),输出的是==它的原码的二进制表示加上个负号==。 - Python中的整型是==补码形式==存储的。
- Python中整型是不限制长度的不会超范围溢出。
作业
练习题:
leetcode 习题 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
尝试使用位运算解决此题。
题目说明:
"""
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
"""
解题思路:
- 0 ^ A = A
- B ^ B = 0
- A^ B ^ B = A
- A^ B ^ B ^ C ^ C = A
代码如下:
class Solution:
def singleNumber(self,nums) -> int:
a = 0
for i in nums:
a ^= i
return a
print(singleNumber([2,2,1]))
print(singleNumber([4,1,2,1,2]))