Python基础

变量
  • 变量类型:

    • 1、数字型

      • 整形:int
      • 浮点型:float
      • 布尔型:boolTrueFalse
      • 复数型: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
  • 默认参数
    • 特点:调用时,默认参数非必须传递;
    • 参数组:
      ```python

      传递多个参数,返回的参数组是一个元组

      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;创作不易,未经同意,转载请注明出处~

Python知识点总结篇(一)的更多相关文章

  1. Python知识点总结篇(五)

    软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...

  2. Python知识点总结篇(三)

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...

  3. Python知识点总结篇(二)

    列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...

  4. Python知识点总结篇(四)

    递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...

  5. 第六篇:Python函数进阶篇

    在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点:  一.Python的迭代器 ...

  6. Python知识点汇总

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  7. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  8. python知识点, float不能用 != 判断

    python知识点链接:https://github.com/taizilongxu/interview_python 搜索:python最佳事件 书单:http://lucida.me/blog/d ...

  9. Python+Selenium练习篇之1-摘取网页上全部邮箱

    前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了.接下来,我计划写第二个系列:练习篇,通过一些练习,了解 ...

随机推荐

  1. JavaScript原始类型转换和进制转换

    1.JavaScript转换包括:强制转换和基本转换 如: var  str = 'A',num=10,nu=null,t=true,und=undefined,x; //注意:定义的x未被初始化:默 ...

  2. cf1191 解题报告

    cf1191 解题报告 A-简单模拟 脑内算出来让计算机输出 #include <bits/stdc++.h> #define ll long long using namespace s ...

  3. 超级经典的HTTP协议讲解

    - HTTP 协议 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. HTTP 协议的主 ...

  4. “未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    一.背景: 开发一个工具的小项目,因为数据少,我就不想安装sqlserver数据库,就用Access数据库. 二.问题: 在客户安装程序的时候,接口访问Access数据库的时候,报错“未在本地计算机上 ...

  5. jquery给label绑定click事件被触发两次解决方案

    首先我们看下面的代码片段(label包裹checkbox) <div class="example"><label for="chk_6" c ...

  6. Fragment: 使用newInstance()来实例化fragment(转)

    先说结论: 1. 当需要给Fragment传值时,使用newInstance()方式来实例化一个Fragment,能够更好的将该Fragment使用的参数捆绑起来,不必每次实例化时都写下面的代码: B ...

  7. http状态码610,613

    610  请求超时 613  dns解析错误

  8. SketchyGAN: Towards Diverse and Realistic Sketch to Image Synthesis - 1 - 论文学习

    https://github.com/wchen342/SketchyGAN Abstract 从人体草图中合成逼真的图像是计算机图形学和视觉学中的一个具有挑战性的课题.现有的方法要么需要精确的边缘图 ...

  9. 关于Spring Cloud的思考和总结

    博主开发使用了Spring Cloud,使用过程中的一些学习和经验,体会通过本博文进行记录. 以前的架构,单体应用: 加入ESB,通过总线进行调用: 微服务架构: 区别: SOA架构主要针对企业级,采 ...

  10. WSL记录

    cmder(mini版)作为wsl的终端,很好用,可以split屏.但是:千万不要在settings里面设置start up(启动) 里面设置 命令行“bash -cur_console:p1”!目前 ...