Python知识点总结篇一

55次阅读

共计 2987 个字符,预计需要花费 8 分钟才能阅读完成。

Python 基础

变量
  • 变量类型:

    • 1、数字型

      - 整形:`int`;- 浮点型:`float`;- 布尔型:`bool`,`True` 和 `False`;- 复数型:`complex`;
    • 2、非数字型

      - 字符串;- 列表;- 元祖;- 字典;
  • 不可变类型:内存中数据不允许被修改;

    - 数字类型 `int、bool、float、complex,long(2, x)`;- 字符串 `str`;- 元祖 `tuple`;
  • 可变类型:内存中数据可修改;

    - 列表 `list`;- 字典 `dict`;
  • 变量命名规则:

    - 只能是一个词;- 只能包含字母、数字和下划线;- 不能以数字开头;
运算符
  • **:代表指数,eg:2 ** 3 = 8;
  • /:代表除法,eg:22 / 8 = 2.75
  • //:代表整除 / 商数取整,eg:22 / 8 = 2
  • *:用于两个整形或浮点型值时,表示乘法,但用于字符串值和一个整形值时,它则变成了 ’ 字符串复制 ’ 操作符;
  • 交互式环境窗口与文件编辑器窗口区别:

    - 交互式环境窗口总是有 ```>>>``` 提示符;- 文件编辑器窗口没有 ```>>>``` 提示符;
  • 注释:

    - 单行注释:```# 这是单行注释;```
    - 多行注释:用三个单引号 ```'''``` 或者三个双引号 ```""" ``` 将注释括起来;
''' 这是
多行注释;'''
""" 这是多行
注释;"""
  • 虽然数字的字符串值被认为与整形值和浮点型值完全不同,但整形值可以与浮点值相等,eg:
>>>42 == 42.0
True
  • #!:常用于 Unix 系统脚本中的第一行开头使用,用于知名执行这个脚本文件的解释程序;
#! /usr/bin/python3
  • 运算符优先级

  • Python 保留字

  • 数据类型转换

  • 正负无穷
float('inf') #正无穷
float('-inf') #负无穷
  • 利用 inf 乘以 0 得到一个 not-a-number(NaN)NaNinf的区别:inf数的 significant 部分为 0,而NaN 数的 significant 部分部位0

控制流

  • 布尔值:Boolean,只有 TrueFalse
  • and、或or、非not
  • 控制流的元素:

    - 条件;- 代码块,代码块 3 条规则:- 缩进增加时,代码块开始;- 代码块可以包含其他代码块;- 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束;
  • 导入模块代码所包含的部分:

    - import 关键字;- 模块名;- 可选的更多模块名称,之间用逗号隔开;

函数

  • None 值,表示没有值,是 NoneType 数据类型的唯一值,print()的返回值即为 None,
>>> spam = print('hello')
hello
>>> None == spam
True
  • 函数三大优点

    - 代码重用;- 保持一致性;- 可扩展性;
  • 过程:过程就是简单特殊无返回值的函数;
  • 函数返回值:

    - 返回值数 = 0:返回 ```None```;- 返回值数 = 1:返回 ```object```;- 返回值数 > 1:返回 ```tuple```;
  • 默认参数

    • 特点:调用时,默认参数非必须传递;
    • 参数组:
# 传递多个参数,返回的参数组是一个元组
def test(*args):
    print(args)
    
>>> test(1, 3, 4)
(1, 3, 4)
# 参数组返回的是字典
def test2(**kwargs):
    print(kwargs)

>>> test2(name = 'k', age = 4, sex = 'M')
{'name':'k', 'age':4, 'sex':'M'}
  • 调用函数时,实质上传递的是实参保存数据的引用,而不是实参保存的数据;
  • 位置参数和关键字:标准调用与形参位置一一对应;关键字调用无序固定;关键字参数必须在位置参数后边;
  • 函数传递的参数

    - 若是不可变类型:只要针对参数使用了赋值语句,函数内部会修改局部变量的引用,但不会对外部变量的引用造成影响;- 若是可变类型:在函数内部使用方法修改参数内容时,同时也会对外部的数据造成影响,随着函数内部参数内容改变而改变;- 当参数是列表时,使用 `+=` 不是进行相加再赋值的操作,本质上是调用列表的 `extend` 方法;
  • 缺省参数注意点

    - 缺省参数的定义位置在参数列表末尾;- 若由多个缺省参数,需要指定参数名;
  • 多值参数

    - 参数前有一个 `*` 可接收元祖,常命名为 `*args`;- 参数前有两个 `*` 可接受字典,常命名为 `**kwargs`;
  • 元祖与字典的拆包

    - 要将一个元祖变量直接传递给 `args`,则在元祖变量前增加一个 `*`;- 要将一个字典变量直接传递给 `kwargs`,则在字典变量前增加两个 `**`;
  • 局部和全局作用域

    - 在被调用函数内赋值的变元和变量,属于该函数的“局部作用域”,处于其中的变量称为”局部变量“,在所有函数之外赋,值的变量,属于“全局作用域”,处于其中的变量为”全局变量“。- 局部变量不能在全局作用域内使用;- 局部作用域不能使用其他局部作用域内的变量;- 全局变量可以在局部作用域中读取;
  • global 语句

    - 通过使用 global 语句,在函数内修改全局变量;
eggs = 'global'
def spam():
    global eggs
    eggs = 'spam'
spam()
print(eggs)    
-----------
spam
-----------
  • 除了字符串和整数不能在函数中改变它的值之外,其他的数据类型如列表、字典、集合等都能够通过函数改变它们的值;
  • 区分一个变量是处于局部作用域还是全局作用域的 4 条法则:

    - 若变量在全局作用于中使用(即在所有函数之外),则为全局变量;- 若在一个函数中,有针对该变量的 global 语句,则为全局变量;- 如果变量用于函数中的赋值语句,则为局部变量;- 若变量没有用于复制语句中,则为全局变量;
  • 异常处理:错误可由 tryexcept语句处理;
def spam(divideBy):
    try:
        return 43 / divideBy
    except ZeroDivisionError:
        print('Error:Invalid argument.')
  • 小程序:猜数字
# 小程序:猜数字, 不断循环,直到你猜出这个数

guessNumber = random.randint(1,100)
print("I'm thinking a number between 1 and 100.")

while True:
    print('Take a guess.')

    guess = int(input())

    if guess > guessNumber:
        print("It's too high")
    elif guess < guessNumber:
        print("It's to low")
    else:
        print("Congratulations, you win.")
        break

  • Collatz 序列
#Collatz 序列
def collatz(number):
    if (number % 2 == 0):
        return number / 2
    else:
        return number * 3 + 1

print('Input a number.')


while True:
    global number1
    try:
        number1 = int(input())
    except ValueError:
        print('Please input a number')
        continue
    if collatz(number1) != 1:
        print(int(collatz(number1)))
    else:
        print(int(collatz(number1)))
        break

欢迎关注微信公众号:村雨 1943;创作不易,未经同意,转载请注明出处~

正文完
 0