Python学习笔记

这篇博客详细介绍了Python的基础知识,包括变量与数据类型(如变量、运算符、整除、逻辑运算、位运算)、条件语句、循环语句、异常处理以及列表、元组和字符串的使用。内容涵盖参考资料链接、笔记要点和相关练习题,适合Python初学者学习。
摘要由CSDN通过智能技术生成

参考资料

team-learning-program/Python-Language/

以下笔记为我从参考资料中摘录的我自己不那么熟悉的知识点,完整系统的内容请直接参考上面的链接。

01. 变量、运算符与数据类型

1.1 笔记

  • 关于变量和对象、赋值和引用的基本概念,https://blog.csdn.net/OuDiShenmiss/article/details/107484130 这里讲得很清楚

  • 可变类型与不可变类型的讲解可参考:https://www.cnblogs.com/blackmatrix/p/5614086.html

  • 整除(向下取整)://

  • 幂乘:**

  • 逻辑运算:andornot

  • 按位取反:~

  • 按位异或:^

  • 注:Python中的 % 与 C/Java不同,本质上是因为除法(整除)的不同

    • C/Java:趋零截尾除法(truncate除法)。如 -11 / 5 = -2,因此 -11 % 5 = -1((-11)%5=-11-[(-11)/5]*5=-11-(-2)*5=-1,与被除数符号一致)。
    • Python:趋负无穷截尾(floor除法)。如 - 11 / 5 = -3,因此 -11 % 5 = 4((-11)%5=-11-[(-11)/5]*5=-11-(-3)*5=4,与除数符号一致)。
  • 三元运算符:z = x if x < y else y

  • is, is not==, !=的区别:
    is, is not 对比的是两个变量的内存地址(对象的id
    ==, != 对比的是两个变量的(对象的value
    因此,
    当变量指向的都是地址不可变的类型(数字、str、tuple),二者完全等价;
    当变量指向的是地址可变的类型(list,dict),二者不同。

a = "hello"
b = "hello"
# 两个变量引用同一个对象,指向同一块地址空间
print(a is b, a == b)  # True True
print(a is not b, a != b)  # False False
a = ["hello"]
b = ["hello"]
# 两个对象,两块内存地址空间
print(a is b, a == b)  # False True
print(a is not b, a != b)  # True False
  • Python 里面万物皆对象(object)。只要是对象,就有相应的属性 (attributes) 和方法(methods),通过 dir(object) 查看。前后各两个下划线表示属性。
b = dir(int)
print(b)
# ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__',
# '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__',
# '__float__', '__floor__', '__floordiv__', '__format__', '__ge__',
# '__getattribute__', '__getnewargs__', '__gt__', '__hash__',
# '__index__', '__init__', '__init_subclass__', '__int__', '__invert__',
# '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__',
# '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__',
# '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__',
# '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__',
# '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__',
# '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__',
# '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__',
# 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag',
# 'numerator', 'real', 'to_bytes']
  • type(object) 获取类型信息
  • isinstance(object, classinfo) 判断一个对象是否是一个已知的类型
print(isinstance(1, int))  # True
print(isinstance(5.2, float))  # True
print(isinstance(True, bool))  # True
print(isinstance('5.2', str))  # True
  • 注:
    type() 不会认为子类是一种父类类型,不考虑继承关系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值