@[Toc]
一些注意事项
python要区分大小写
缩进非常重要
变量、运算符与数据类型
1.注释
为什么使用注释?
阐述代码要做什么以及是如何做的
基本内容
#用于 单行注释
''' ''',""" """用于多行注释(例子不举了)
2.运算符
算术运算符
操作符
名称
+
加
-
减
*
乘
/
除
//
整除
%
取余
**
幂
算术运算符的操作与数学上的没什么区别,但值得注意的是//==不遵循四舍五入原则,运算取整时保留整数的下界,即偏向于较小的整数.==
【例子】
print(11//3) # 3.65656565->3
print(11//5) # 2.2->2
比较运算符
逻辑运算符
and 与
or 或
not 非
成员运算符
in not in
身份运算符
is is not
例子看[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.各种按位操作
注意:
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]))