Python入门学习笔记1

1. 变量运算符与数据类型

注释

单行注释

# 这是单行注释
print("Hello world")

多行注释

"""
这是多行注释
"""

运算符

算数运算符
在这里插入图片描述
比较运算符
在这里插入图片描述
逻辑运算符
在这里插入图片描述
位运算符
在这里插入图片描述
其他运算符
在这里插入图片描述
运算符优先级(从上到下递减)
在这里插入图片描述

变量和赋值

  • 在使用变量之前,需要对其先赋值。
  • 变量名可以包括字母、数字、下划线、但变量名不能以数字开头。
  • Python 变量名是大小写敏感的,foo != Foo。
  • python中的变量在声明时不需要声明其类型,变量会根据赋值自动确定类型。

数据类型与转换

最常见的三种数据类型:
在这里插入图片描述
通过type()查看数据类型

print(type('wzy'), type(1))

通过bool()来判断变量是否为空,如果为空则返回false

x = ''
print(bool(x))

通过isinstance()判断是否是某种确定的数据类型

x = 1
print(isinstance(x, int))

类型转换:只需要在变量前加上要转换的类型即可

x = '150'
print(int(x))

print函数:print函数的参数其实如下

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

其中,sep表示同一个print语句中不同元素之间的间隔用什么符号,默认为空,例如:

shoplist = ['apple', 'mango', 'carrot', 'banana']
for item in shoplist:
    print(item, 'another string', sep=' & ')

end表示该print语句最后输出的符号,默认为换行"\n",例如:

shoplist = ['apple', 'mango', 'carrot', 'banana']
for item in shoplist:
    print(item, end='&')

2. 位运算

位运算作用于二进制数。位运算的意义在于,数字在二进制表示下可以通过位运算很巧妙地实现很多计算。

原码,反码,补码

符号原码反码补码
正数不变不变不变
负数不变符号位不变,其余位取反反码加一

按位运算

按位非运算~:负数按位非运算后为其绝对值减一,反则反之

00 00 01 01 -> 5
~
---
11 11 10 10 -> -6

按位与运算:&。通过 a & (-a) 快速获取a的最后为 1 位置的整数。

00 00 01 01 -> 5
&
11 11 10 11 -> -5
---
00 00 00 01 -> 1

按位或运算:|
按位异或运算:^。通过^可以快速交换两个正数。

a ^= b
b ^= a
a ^= b

按位左移:>>,按位右移:<<。通过左右移可以快速计算2的倍数。

n << 1 -> 计算 n*2
n >> 1 -> 计算 n/2,负奇数的运算不可用
n << m -> 计算 n*(2^m),即乘以 2 的 m 次方
n >> m -> 计算 n/(2^m),即除以 2 的 m 次方
1 << n -> 2^n

通过位运算进行集合运算
一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。

比如集合 {1, 3, 4, 8},可以表示成 01 00 01 10 10 而对应的位运算也就可以看作是对集合进行的操作。

元素与集合的操作:

a | (1<<i)  -> 把 i 插入到集合中
a & ~(1<<i) -> 把 i 从集合中删除
a & (1<<i)  -> 判断 i 是否属于该集合(零不属于,非零属于)

集合之间的操作:

a 补   -> ~a
a 交 b -> a & b
a 并 b -> a | b
a 差 b -> a & (~b)

3. 逻辑结构

条件语句

if, if-else, if-elif-else:与C语言或其他语言中的条件结构基本类似,不过多介绍。
值得一提的是assert,这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。例如:

my_list = ['lsgogroup']
assert len(my_list) > 0

通常用在单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。

循环语句

1.while循环:当判断条件为真时执行代码块,直到判断条件为假。

while 布尔表达式:
    代码块

# 通常用在while有可以跳出循环的break语句时,跳出循环后将不再执行else中的代码。
while 布尔表达式:
    代码块
else:
    代码块

2.for循环:for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。

for 迭代变量 in 可迭代对象:
    代码块

# 与while-else类似,跳出循环后将不再执行else中的代码
for 迭代变量 in 可迭代对象:
    代码块
else:
    代码块

终止循环
break:跳出当前所在的循环。
continue:终止本轮循环并开始下一轮循环。

range循环

range是一个经常被用在for循环中的语句:

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

这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1 表示第三个参数的默认值是1。
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。

推导式
根据for循环可以构建各种推导式
1.列表推导式:

x = [-4, -2, 0, 2, 4]
y = [a * 2 for a in x]
print(y)
# [-8, -4, 0, 4, 8]

2.元组推导式

a = (x for x in range(10))
print(a)
# <generator object <genexpr> at 0x0000025BE511CC48>

print(tuple(a))
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

3.字典推导式

b = {i: i % 2 == 0 for i in range(10) if i % 3 == 0}
print(b)
# {0: True, 3: False, 6: True, 9: False}

4.集合推导式

c = {i for i in [1, 2, 3, 4, 5, 5, 6, 4, 3, 2, 1]}
print(c)
# {1, 2, 3, 4, 5, 6}

4.异常处理

try-except

try:
    检测范围
except Exception[as reason]:
    出现异常后的处理代码

一个try语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

try:
    int("abc")
    s = 1 + '1'
    f = open('test.txt')
    print(f.read())
    f.close()
except OSError as error:
    print('打开文件出错\n原因是:' + str(error))
except TypeError as error:
    print('类型出错\n原因是:' + str(error))
except ValueError as error:
    print('数值出错\n原因是:' + str(error))
else:
    print(x)
# 数值出错
# 原因是:invalid literal for int() with base 10: 'abc'

一个 except 子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。

try:
    s = 1 + '1'
    int("abc")
    f = open('test.txt')
    print(f.read())
    f.close()
except (OSError, TypeError, ValueError) as error:
    print('出错了!\n原因是:' + str(error))

# 出错了!
# 原因是:unsupported operand type(s) for +: 'int' and 'str'

try-except-finally:如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。

try:
    检测范围
except Exception[as reason]:
    出现异常后的处理代码
finally:
    无论如何都会被执行的代码

不管`try`子句里面有没有发生异常,`finally`子句都会执行。

try-excpet-else:使用except而不带任何异常类型,如果在try子句执行时没有发生异常,Python将执行else语句后的语句。不过这不是一个很好的方式,因为我们不能通过该程序识别出具体的异常信息。

try:
    检测范围
except:
    出现异常后的处理代码
else:
    如果没有异常执行这块代码

raise:Python 使用raise语句抛出一个指定的异常。

注:资料参考自阿里python训练营

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值