(二)python基础

python基础

  1. 自然语言与编程语言有所不同 ,自然语言可以在不同的情景下有不同的含义或解释 , 但这是编程语言是坚决杜绝的 。
  2. 编程语言应有的性能要求有:一致性 、 无二义性 、 简洁性 、局部性 、 线性 。
  3. python语言也不列外 。
  4. python的 语法比较简单 , 采用缩进的方式 。 如:

    a=100;
    if a>=0:print(a)
    else:print(-a)
    1. 以#开头的是注释
    2. 每一行都是一个语句
    2. 当语句以:结尾时 , 缩进的语句视为一整个代码块(缩进有利有弊 1.  好处是强迫你写出格式化美观的代码 , 但是在python中并没有规定缩进是几个空格还是tab , 一般约定俗成坚持使用四个空格的缩进 。2.  强迫你缩进更少的代码 , 这样你回吧倾向于更长的代码拆分为若干个函数 ,提高代码复用性3.  坏处就是 , 当你粘贴代码的时候必须要重新检查缩进是否正确 , 此时IDE也很难像格式化java代码一样格式化Python代码 )
    4.  Python程序时大小写敏感的语言
    

一、数据类型和变量 、常量

  1. 基本数据类型:

    1. 整数:

      1. 在python中可以处理任意大小的整数 ,包括负数 , 在python语言中的表示方法和数学上的写法一模一样
    2. 浮点数
      1. 浮点数就是小数 , 之所以叫浮点数是因为当用 科学计数法表示一个小数小数点的位置不是固定的 ,而是浮动的 , 在Python中很大或很小的浮点数最好使用科学计数法表示 。
      2. 整数和浮点数在计算机中存储的方式是不同的 。整数在计算机中存储是永远是精确的 , 而浮点数只有很少一部分能精确存储 。
    3. 字符串
      1. 字符串是以单引号或双引号引起来的任意文本
    4. 布尔值
      1. 一个布尔值只有True 、 False两种值 , 在python中可以直接用True 、 False表示布尔值(注意大写) , 也可以通过布尔运算计算出来 。
      2. 布尔值也可以用 and 、 not 、 or 运算
    5. 空值
      1. 空值是Python中一个特殊的值 , 用None表示 , Nono不能理解为0 , 因为0是有意义的 , 而None是一个特殊的空值 。
  2. 变量:
    1. 变量名只能由字母 、 数字 、 下划线组成 , 且不能用数字开头
    2. 在Python中 = 是复制语句 , 可以把任意数据类型复制给变量 ,同一个变量可以反复复制 , 而且可以使不同类型的变量 。(这种变量类型本身不确定的语言称之为动态语言 )
    3. 当执行 a=’abc’ 时 , Python解释器干了两件事:
      1. 在内存中创建了一个‘abc’的字符串
      2. 在内存中创建了一个名为a的变量 , 并把它指向‘abc’
  3. 常量:
    1. 常量就是不能变的变量 , 一般来说常量全部用大写的变量名表示 , 如数学常数π在Python中使用PI表示 。
    2. 但事实上常量仍然是一个变量 , Python根本没有任何机制保证PI不会被改变

二、 字符串和编码

  1. 编码 略
  2. 字符串

    1. 对于单个字符的编码 , Python提供了ord()函数获取字符的整数表示 , chr()函数把编码转换为对应的字符
    2. python的字符串类型是str , 在内存中以Unicode表示 , 一个字符对应若干个字节 , 如果要在网络上进行传输 , 或者保存在磁盘上 , 就需要把str保存为以字节为单位的bytes 。
    3. python中bytes类型的数据用带b前缀的单引号或双引号表示

      x=b'abc'
      
    4. 要注意bytes类型和str类型的数据 , b’abc’ 和’abc’虽然内容一致 , 但是bytes的数据每个字符只占一个字节 。 :
    5. encode() : 可以使用encode()方法把str类型的字符串通过指定编码进行转换 。当指定的编码无法表示对应的字符时会报错 。
    6. decode() : 当python代码从磁盘读取数据时 , 读取到的是字节流, 如果想要获取中文数据 , 需要对字节流使用decode()进行解码操作 。当需要忽略字节流中错误的字节时 , 可以添加参数errors=‘ignore’
    7. len(str):查看字符串包含多少个字符注意不是字节而是字符
    8. len(bytes): 获取字符串字节个数
    9. 在开发中如果需要中文与bytes转换时 , 应该坚持使用utf-8 , py源代码本身也是一个文本文件 , 当源代码中包好中文时保存python源代码应该制定编码为utf-8(windows下默认gbk , linux下默认utf-8) 。为了在python源码执行时解释器解释正确 , 因该在文件中开头处加上 # -- coding:utf-8 -- 告诉解释器解释代码时使用 utf-8编码 。
    10. 格式化字符串: 如何输出类似“亲爱的xxx , 你xx月的话费是xxxx!”的字符串 , xxx中的内容都是根据变量变化的 , 所以python提供了简便的格式化字符的方式 。 在需要变量的位置放入占位符 , 在有参数时自动调用参数中对应的内容 。常见的占位符:

      占位符 替换内容
      %d 整数
      %f 浮点数
      %s 字符串
      %x 十六进制数

      其中格式化整数和浮点式还可以指定是否补0和整数与小数的位数

    11. 当字符串中包含%时 , %需要转义 ,用%%表示% 。
    12. format() : 另一种格式化字符串的方法 , 他会将传入的字符串依次的替换字符串内的占位符

三 、 list和tuple

  1. list: 列表list是python内置的一种数据类型 。 list是一种有序的集合 , 可以随时添加和删除其中的元素 。

    1. 可以用索引来访问list中的元素 。 当索引为正整数时 , 索引从0开始 。当索引为负整数时, 索引从-1开始 。 当索引超出list的长度时 , 会报错索引越界 。
    2. list是一个可变的有序列表
      1. 添加元素到末尾
      2. 添加元素到指定位置
      3. 获取并删除末尾元素
      4. 获取并删除指定位置元素
    3. list中的元素数据类型可以不同
  2. tuple: 另一种序列表叫元祖 。 tuple与list非常相似 。 但是tuple一旦初始化就不能修改 。只能获取其中的元素而不能删除或修改 。

    1. 因为tuple是不可变的 , 所以代码更加安全 , 在能用tuple时尽量使用tuple 。 但是tuple由于是不可变的 ,所以在定义tuple时 , 其中的所有元素就应该确定下来
    2. list用[]来表示 , tuple用()表示 。 tuple中即使只有一个元素时 , 也必须加上逗号 ,避免与计算时的()混淆 。

四 、 条件判断

  1. 之所以可以做很多自动化任务 , 就是因为他可以自动根据情景做条件判断 。
  2. 根据python的缩进规则 , 相同的连续的缩进视为同一个代码块 。

    # -*- coding:utf-8 -*-
    # 使用input获取到的内容都为Str类型  需要转换后才能使用运算符运算
    age =int(input("请输入你的年龄:"))
    if age>18 :print("你是成年人!")
    elif age>15 :print("你是青少年!")
    else:    print("你是儿童!")input("输入任意字符退出!")
    
  3. python中if判断天剑还可以简写 , 直接判断自动推断数据类型 , 然后自动判断整数或浮点数是否为0 , 字符串是否为空 ,list是否为空 。 如果是则运算结果为Ture , 否则为False 。

五 、 循环

  1. python中提供 两种循环: for-in 和while循环 。

  2. for循环 :

    #  -*- conding : utf-8 -*-
    #python中循环#循环输出名字
    names = ['韩梅梅' , '李雷雷' , '小明明']
    for name in names :print(name)#循环输出有序数字
    list = [1,2,3,4,5,6,7,8,9]
    for l in list :print(l)    # 但是如果想要输出1~10000的有序数字 , 难道需要提前定义1~10000的list么list2=range(10001) # range()函数用于生成0到指定数字的有序list
    for l in list2:print(l)
    
  3. while循环:

    #while 循环
    # 求0到100的和sum = 0
    n = 100
    while n>0 :sum =sum +nn = n - 1
    print("0到100的整数和为:" ,sum)
    
  4. break 与 continue
    1. 在循环中可以使用break提前结束循环 , 一般需要配合if使用 。
    2. 在循环中可以使用continue结束本轮循环 , 之后继续进行下一轮循环 。

六 、 dict和set

  1. dict : python中内置了dict的支持 , dict全程dictionary , 在其他语言中也称为map , 使用键值对存储 , 有着极快的查找速度 。 (原因: dict有自己的索引表 , 不会随着元素的增多而导致查询速度变慢)

    1. 在dict中 一个key只能对应一个value ,在key一样的情况下 后进的value会把之前的value覆盖。
    2. 在修改value时如果value不存在 , 则会报错 。为了避免key不存在的错误 , 可以事先通过in判断key在dict中是否存在 。 也可以通过get()函数判断key是否存在 ,如果不存在则返回none 或返回自己制定的缺省值。 (在python的交互环境中测试时 如果结果为None , 则不会有任何显示 。 )
    3. dict和list相比:
      1. dict可以存储键值对格式的数据 。
      2. dict的查询速度非常快 , 不会随元素增多而变慢
      3. dict占用的内存空间较大 , 内存浪费多
      4. dict总结: dict可以 =用在需要钙素查询多的地方 , 在python代码中几乎无处不在 ,需要注意的是dict中元素的key必须是不可变对象 。 这是因为dict需要根据key来计算value的存储位置 , 如果每计算的位置都不一样那就完全混乱了 。 在python中字符串 、 整数都是不可变的 , 因此可以放心的用作key 。
  2. set : set中存储的元素格式与list类似, 但是存储的元素的位置和存储的顺序无关, 且set内存储的元素是不可以重复的 。

    1. add() : 通过add()函数将元素添加到set中 。
    2. remove() : 通过remove()函数将元素从set 中移除 。
    3. 在数学的概念上 set是一个无序不重复的元素的集合 , 所以可以对set进行交集、 并集运算 。

    4. set总结: set和dict 的唯一区别就是dict存储的元素是键值对形式的 ,而set只存储了key , set和dict中的key都是不可重复的 , 存储顺序相对于存入顺序来说都是无序的 , 且set和dict的原理是一样的 , 同样不可以存储可变元素 , 因为无法判断两个元素是否相等 , 也就无法保证set中不会有重复元素 。(在python中str和整数是不可变元素 )

Python学习笔记(三) Python基础相关推荐

  1. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

  2. Python 学习笔记 D1(基础)

    Python 学习笔记 D1(基础) 1.注释 #一个注释 ''' 多行注释 ''' 2.运算符与C++相同:+,-,*,/,%,>,<,=,>=,<=,==,!= 与C++不 ...

  3. Python学习笔记 1.0 基础内容篇章

    Python学习笔记 1.0 基础内容篇章 注释 变量 一.定义变量 二.使用变量 bug和debug bug: Debug工具: 数据类型 认识数据类型 在定义数据类型时发生的错误: 数据类型的补表 ...

  4. 大数据HiveSQL学习笔记三-查询基础语法以及常用函数

    大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...

  5. Python学习笔记之入门基础

    课程链接:Python入门教程--基础阶段_哔哩哔哩_bilibili Python学习笔记 注释 单行注释: * 多行注释: 1.多行前面加# 2."""注释信息&qu ...

  6. python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...

    image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...

  7. Python学习笔记(一) Python基础

    文章目录 1. 初始Python 1.1 Python安装 1.2 Python解释器 1.3 安装和配置PyCharm工具 2. 基础语法 2.1 注释 2.2 字面量 2.3 变量 2.4 标识符 ...

  8. 『Python学习笔记』Python实现并发编程(补充joblibpymysql)

    Python实现并发编程(补充joblib&pymysql) 文章目录 一. 并发编程知识点 1.1. 为什么引入并发编程 1.2. 如何选择多线程多进程多协程 1.2.1. 什么是CPU密集 ...

  9. 2022年最高效,踏实的Python学习笔记以及Python学习规划

    一.学习建议 1.找到自己感兴趣的方向,并且结合市场需求进行选择 Python的应用范围 测试 运维 web 人工智能 大数据 爬虫及数据分析 办公自动化 2.学习过程中一定要勤加练习,并且尝试去使用 ...

  10. 『Python学习笔记』Python中的异步Web框架之fastAPI介绍RestAPI

    Python中的异步Web框架之fastAPI介绍&RestAPI 文章目录 一. fastAPI简要介绍 1.1. 安装 1.2. 创建 1.3. get方法 1.4. post方法 1.5 ...

最新文章

  1. c++ 从文本中逐行读取,并按空格对读取的一行进行分割
  2. 嘈杂场景语音识别准确率怎么提?脸书:看嘴唇
  3. oracle 表复制操作
  4. c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...
  5. 不好意思,观察者模式跟发布订阅模式就是不一样
  6. 1.极限——例子_2
  7. BugkuCTF web5
  8. c#读写apk的 comment
  9. 如何用计算机抽奖,怎么用PPT制作随机点名抽奖
  10. 前端——“一看就会的”菜鸟教程网站首页制作!
  11. Super Point 笔记(二)
  12. 《大学物理》课程考试大纲
  13. 使用IPC扫描器进行网络扫描
  14. keycloak 验证 token
  15. 【数据结构】初识时间空间复杂度
  16. ES聚合查询详解(四):管道聚合
  17. iOS开发实现资源包增量更新
  18. 思岚科技亮相2017电子博览会 倍受瞩目
  19. 2.8.5Django --9 Django与Ajex
  20. 关于Mysql 的时区问题

热门文章

  1. 项目实践精解:C#核心技术应用开发
  2. rgb fusion检测不到显卡_买不到RX 6800XT就装不了机解不了馋?我看未必
  3. 网站重启服务器有啥好处,常规服务器重启的好处和障碍
  4. C语言函数题-取子串 (10分)
  5. python排序的方法_python中排序的一种方法
  6. Java黑皮书课后题第10章:10.24(实现Character类)在Java库中提供了Character类,给出你自己对这个类的实现(将新类命名为MyCharacter)
  7. Java黑皮书课后题第5章:**5.17(显示金字塔)编写程序,提示用户输入一个在1到15之间的整数,然后显示一个金字塔形状的图案
  8. kafka读写 java_java-Kafka流:从应用程序的每个实例中的所有分区读取
  9. 2012届华为校园招聘机试题
  10. Qt中moc问题(qt moc 处理 cpp)