Python训练营Task 1 Python基础入门学习笔记

本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=a2c6h.19782939.J_4650897450.1.4348564bZajvdr

变量、运算符与数据类型

1.注释

# 这是单行注释
print('hello world')
'''
这是多行注释
'''
"""
这是多行注释
"""
print('hello dw')

2.运算符

  1. 算数运算符(+,-,*,/,//,%,**)

  2. 比较运算符(>,<,<=,>=,==,!=)

  3. 逻辑运算符(and,or,not)

  4. 位运算符(~,&,`,^,<<,>>)

  5. 三元运算符

x,y = 4,5
a = x if x < y else y
print(a) #4
  1. 其他运算符(in,not in,is,not is)
a='hello'
b='hello'
print(a is b, a==b) #True True
a=['hello']
b=['hello']
print(a is b, a==b) #False True

注意:
1.is, is not 对比的是两个变量的内存地址

2.==, != 对比的是两个 变量的值

3.比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是 完全等价

4.对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别

3.变量和赋值

注意:

  • 使用变量名前要先赋值
  • 变量名可以包括字母、数字、下划线、但变量名不能以数字开头
  • Python 变量名是大小写敏感

4.数据类型与转换

  • 基本类型:整型int,浮点型float,布尔型bool
  • 容器类型:字符串str,元组tuple,列表list,字典dict,集合set
  • 获取类型信息type(object)
  • 判断两个类型是否相同推荐使用isinstance()

5.print()函数

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • 关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符,默认是空格
  • 关键字参数end是输出结束时的字符,默认是换行符\n
a=['a','b','c']
for i in a:
    print(i,'hello',sep=',',end='&')
#输出a,hello&b,hello&c,hello&

位运算

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.按位运算

  • 按位非操作 ~
    ~ 把num的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)有符号整数的符号位在 ~ 运算中同样会取反

  • 按位与操作 &
    只有两个对应位都为 1 时才为 1

  • 按位或操作 |
    只要两个对应位中有一个 1 时就为 1

  • 按位异或操作 ^
    只有两个对应位不同时才为 1

  • 按位左移操作 <<
    num << i 将num的二进制表示向左移动i位所得的值

  • 按位右移操作 >>
    num >> i 将num的二进制表示向右移动i位所得的值

3. 利用位运算实现快速计算

通过 <<,>> 快速计算2的倍数问题

通过 ^ 快速交换两个整数。 通过 ^ 快速交换两个整数

通过 a & (-a) 快速获取a的最后为 1 位置的整数

4. 利用位运算实现整数集合

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

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

注意:整数在内存中是以补码的形式存在的,输出自然也是按照补码输出

条件语句

1. if 语句

if 2 > 1 and not 2 > 3:
    print('yes')
# 输出yes

2.if - else 语句

tmp = input('猜一猜是数字几:')
guess = int(tmp)
if guess > 10:
    print('猜大了')
else:
    if guess == 10:
        print('猜对了')
    else:
        print('猜小了')
print('结束游戏')

猜一猜是数字几:8
猜小了
结束游戏

if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构

3. if - elif - else 语句

tmp = input('请输入成绩')
score = int(tmp)
if 100>= score >=90:
    print('A')
elif 90> score >=80:
    print('B')
elif 80> score >=60:
    print('C')
elif 60> score >=0:
    print('D')
else:
    print('输入错误')

请输入成绩10
D

4.assert 关键词

assert 5>7
# AssertionError

循环语句

1. while 循环

count = 0
while count < 3 :
    tmp = input('猜数字大小:')
    guess = int(tmp)
    if guess > 8:
        print('猜大了')
    elif guess < 8:
        print('猜小了')
    else:
        print('猜对了')
    count +=1
print('游戏结束')

猜数字大小:5
猜小了
猜数字大小:6
猜小了
猜数字大小:8
猜对了
游戏结束

2. while - else 循环

while 布尔表达式:
代码块
else:
代码块

当while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容

3.for循环

for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict

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

4.for - else 循环

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

当for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样

5. range() 函数

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

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

6.enumerate()函数

enumerate(sequence, [start=0])

  • sequence:一个序列、迭代器或其他支持迭代对象。
  • start:下标起始位置
  • 返回 enumerate(枚举) 对象

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

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

languages = ['python','C++','java']
for i,language in enumerate(languages,1):
    print(i,'I love',language)
print('Done')

1 I love python
2 I love C++
3 I love java
Done

7. break 语句

break语句可以跳出当前所在层的循环

8. continue 语句

continue终止本轮循环并开始下一轮循环

9. pass 语句

pass是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性。尽管pass语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass语句,让代码可以正常运行

10. 推导式

  1. 列表推导式

[ expr for value in collection [if condition] ]

  1. 元组推导式

( expr for value in collection [if condition] )

a = (i for i in range(10))
print(a)

<generator object at 0x000001612A20FAC8>

generator称为生成器,由于列表内存受限,一个包含很多元素的列表不仅占用还能存储空间,而且在只需要访问前几个元素时,后面元素占用的空间就浪费了,所以为了节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器

print(next(a))
for i in a:
    print('A',i)

0
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A 9

  1. 字典推导式

{ key_expr: value_expr for value in collection [if condition] }

  1. 集合推导式

{ expr for value in collection [if condition] }

  1. 其它

next(iterator[, default])

异常处理

1. Python 标准异常总结

2. Python标准警告总结

3. try - except 语句

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

4. try - except - finally 语句

5. try - except - else 语句

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

6. raise语句

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

学习思考和总结

第一次开始尝试以博客方式总结知识点,若有错误还望指正,开头的学习链接中有更完整的知识梳理,以后还会多加完善和修改,愿每个人每天都有所进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值