Python CH1 环境准备

  • 因为已经有了C/C++、Java的基础,所以上手很快。

  • 参考书:Eric Matthes -《Python编程 从入门到实践》

  • 环境准备:python3、PyCharm2020

  • 哪里不会baidu/bilibili哪里

  • 代码之道

    • 选择简单且行之有效的方案
    • 不因追求完美而忽略行之有效
    • 不要将问题太过复杂化
  • 想做的事

    1. 小游戏-外星人入侵
    2. 数据可视化-打卡表
    3. ...

Python CH2 变量及简单数据类型

  • 有点像web,变量存什么,就是什么类型。
  • 不用定义数据类型,就很方便。
  • 但是不同类型,要转化为统一类型,再进行操作。
  • 变量使用前,一定要赋值,哪怕是空。

2.1变量命名规范

  • 字母、数字、下划线,不以数字开头
  • 不能有空格
  • 不能使用python关键字
  • 名称简短且有描述性(可读性 eg.name比n好,num比n好
  • 慎用小写l大写O

2.2 字符串及其处理

  • 大小写转换

    • 变量名.title() 单词首字母大写,其余全小写
    • 变量名.upper() 全大写
    • 变量名.lower() 全小写
  • 合并字符串 字符串加法

  • 关于空白

    • 打印空白:空格、制表符、换行符...(space、\t、\n...)
    • 删除空白:(临时的,如果想永久,重新赋值即可)
      • 变量名.rstrip() 删除串尾空白
      • 变量名.lstrip() 删除串首空白
      • 变量名.strip() 删除首尾空白
  • 引号

    正确使用引号,单/双引号都可以保存串。

    输出引号需转义

2.3数值及其运算符

  • 常规 "+, -, *, /, %, ()..." 都有

  • 乘方 **

    3**6 <==> 3的6次方
  • 复合 +=, -=, .... 也都有

  • 特殊

    • python3中 取消1/2=0这种,直接1/2=0.5。但是以前的版本有
    • 没有++,--,^
  • str(数值) 转换类型

    数值与串不能直接操作,可将数值转换成字符串类型

    "Hello world, " + str(2319) ==> "Hello world, 2319"

2.4注释

  • 单行 #

  • 可跨行 """ 内容 """

    # 单行注释
    """
    三对引号
    可以实现
    跨行注释
    """

Python CH3 列表基础

  • 数组差不多

  • [] 中括号表示列表

  • , 逗号分隔元素

  • names 常用单词复数,命名列表

3.1访问列表元素

  • 列表名 访问整个列表
  • 列表名(索引) 访问单个元素从0开始的列表索引
  • 索引为 -1 表示列末元素 (-2,-3依次类推,前提是列表得有足够的元素
  • 一定要避免索引错误!
fruits = ['苹果', '香蕉', '梨']
print(fruits) # 打印结果:['苹果', '香蕉', '梨']
print(fruits[2]) # 打印结果:梨

3.2增删改

    • append() 列尾添
    • insert() 指定位置添
    fruits = []
    
    fruits.append('苹果')
    fruits.append('香蕉')
    fruits.append('梨')
    fruits.append('草莓') # 向列尾添加元素
    print(fruits) # 打印结果:['苹果', '香蕉', '梨', '草莓'] fruits.insert(0,'西瓜') # 向列首(位置0)添加元素
    print(fruits) # 打印结果:['西瓜', '苹果', '香蕉', '梨', '草莓']
    • del语句 根据索引删
    • remove() 根据内容删
    • pop() 根据索引删
    fruits = ['西瓜', '苹果', '香蕉', '梨', '草莓']
    del fruits[0] # 根据索引删除
    print(fruits) # 打印结果:['苹果', '香蕉', '梨', '草莓'] fruits.pop() # 取出栈顶元素(最后一个元素)
    print(fruits) # 打印结果:['苹果', '香蕉', '梨']
    fruits.pop(0) # 根据索引删除
    print(fruits) # 打印结果:['香蕉', '梨'] fruits.remove('香蕉') # 根据内容删除
    print(fruits) # 打印结果:['梨']
  • 给元素重新赋值

3.3 排序

  • sort() 升序排序(永久性排序,列表被改变)

    • sorted() 临时性排序,不改变列表
  • reverse() 倒置列表

  • len() 列表长度(数值类型)

    numbers = [2, 3, 1, 9, 0, 7, 0, 2, 4]
    
    print(sorted(numbers))     # 打印结果 [0, 0, 1, 2, 2, 3, 4, 7, 9]
    print(numbers) # 打印结果 [2, 3, 1, 9, 0, 7, 0, 2, 4] numbers.sort() # 永久升序
    print(numbers) # 打印结果 [0, 0, 1, 2, 2, 3, 4, 7, 9]
    numbers.sort(reverse = True) # 永久降序
    print(numbers) # 打印结果 [9, 7, 4, 3, 2, 2, 1, 0, 0] numbers.reverse() # 倒置列表
    print(numbers) # 打印结果 [0, 0, 1, 2, 2, 3, 4, 7, 9] print(len(numbers)) # 列表长度,打印结果:9

Python CH4 列表进阶:循环遍历

  • 潜规则:for循环遍历+基本操作,while循环条件操作
  • 没有循环变量,可以有循环条件

4.1for循环

  • for ... in ... :
  • 冒号 (不要遗忘)
  • 缩进 (python以缩进区分代码块,后面if、while等也是如此
  • 不要遗漏/错误缩进
# 通式
for xx in xxs :
do something
fruits = ['苹果', '香蕉', '梨']
for fruit in fruits :
print(fruit)
print("Circulation out.") """打印结果
苹果
香蕉

Circulation out.
"""

4.2 range() + for

  • range() 生成一系列的数字
numbers = []
for number in range(1,5): # [1, 5) python的规则,不包含后边一个数
numbers.append(number)
print(number)
print(numbers)
"""output
1
2
3
4
[1, 2, 3, 4]
"""

4.3 数值列表简单统计计算

  • min() 最小

  • max() 最大

  • sum() 求和

numbers = [1, 2, 3, 4]
print(min(numbers)) # 1
print(max(numbers)) # 4
print(sum(numbers)) # 10

4.4列表解析

  • 简化4.2的代码
# 普通的range()生成[1,10]的平方
numbers = []
for value in range(1,11):
number = value**2 # ** 表示乘方
numbers.append(number)
print(numbers)
# 列表解析 生成[1,10]的平方
numbers = (number**2 for value in range(1, 11))
print(numbers)

4.5 切片:处理部分元素

  • 切片:提取你想看到/想操作的元素
  • [start_index : end_index]
  • 规则,不包含后面的索引
  • []中括号 :冒号
nums = [0, 1, 2, 3, 4] # 切片:根据需求取出想看到的元素
print(nums[0:3]) # [0, 1, 2] 一共三个元素,从0开始
print(nums[:3]) # [0, 1, 2] 缺省start_index,默认从0开始
print(nums[2:]) # [2, 3, 4] 缺省end_index,默认读到末尾
print(nums[2:5]) # [2, 3, 4] 从start_index开始,但不包含end_index
print(nums[-3:]) # [2, 3, 4] 负索引,列表的后几项元素
print(nums[:]) # 都缺省,表全部 [0, 1, 2, 3, 4]

遍历切片

nums = [0, 1, 2, 3, 4] # 切片:根据需求取出想看到的元素
for num in nums[:3]: # 遍历打印,列表前三个元素
print(num) # 0 1 2 (其余遍历以此类推)

复制列表

nums = [0, 1, 2, 3, 4]
nums_1 = nums # 错误,不可行
nums_1 = nums[:] # 正确,这样才对!!!
# 部分复制,也用切片

4.6 元组:特殊的列表

  • 元组,元素不可改
  • () 圆括弧 ,逗号
  • 其余和列表一样
  • 想要修改元组的内容,只有对整个元组重新赋值
  • append()、sort()...仍然适用
nums = (0, 1, 2, 3, 4)
nums[0] = 2319 # 程序终止,元组的元素,不可单独修改
nums = (5, 6, 7, 8, 9) # 但元组可以重新赋值

Python学习笔记 CH1-4:从入门到列表的更多相关文章

  1. Python学习笔记2:构造序列:列表推导和生成器表达式

    欢迎访问个人网站:www.comingnext.cn 1. 关于Python内置序列类型 a. 按能否存放不同类型的数据区分 容器序列: list.tuple 和collections.deque这些 ...

  2. python学习笔记:第五天( 列表、元组)

    Python3 列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见 ...

  3. python学习笔记(13)常用模块列表总结

    os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作 ...

  4. python学习笔记(二)---for循环与操作列表

    内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  8. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  9. 近期Python学习笔记

    近期Python 学习笔记--一篇文入门python 作者:Pleiades_Antares(www.cnblogs.com/irischen) 写在前面的话 想学Python已经许久,一年多以前(应 ...

随机推荐

  1. Codeforces Round #672 (Div. 2) A. Cubes Sorting (思维)

    题意:有一长度为\(n\)的一组数,每次可以交换两个数的位置,问能否在\(\frac{n*(n-1)}{2}-1\)次操作内使得数组非递减. 题解:不难发现,只有当整个数组严格递减的时候,操作次数是\ ...

  2. 力扣567.字符串的排列—C语言实现

    题目 来源:力扣(LeetCode)

  3. Xtrabackup 物理备份

    目录 Xtrabackup 安装 Xtrabackup 备份介绍 Xtrabackup全量备份 准备备份目录 全量备份 查看全量备份内容 Xtrabackup 全量备份恢复数据 删除所有数据库 停止数 ...

  4. boomworks 1999~2009

    大众软件 PC定时执行专家 4.0 (PCTaskTimer) - 功能强大.简单易用的定时执行软件.具有功能多.体积小.消耗资源少的特点. 超级网际搜索(SuperSearch) - 免费.快速.高 ...

  5. Java中输出小数点后几位

    笔试时候,遇到让你写输出小数点后几位,当时很是头疼,下来后,查了查发现,没什么难的.网上有各种情况都讨论了(一般分为4种),在这里我着重讨论一下比较实用,比较简单,比较方便操作的几种: 1 publi ...

  6. C# 类 (5)

    Static 静态成员 创建一个类,实例化它,然后使用实例的各种方法或者属性 然而有时候我们不想实例化这个类,难道我们就没法用他里面的成员了吗?比如计算矩形的面积,就是长*宽,万年不变 当然可以,用s ...

  7. SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解

    题意: 有一个\(n*n*n\)的三维直角坐标空间,问从\((0,0,0)\)看能看到几个点. 思路: 按题意研究一下就会发现题目所求为. \[(\sum_{i=1}^n\sum_{j=1}^n\su ...

  8. Linux 驱动框架---linux 驱动

    总述 Linux 系统下的驱动最后都是以如下这个结构体呈现在系统中的,注意其中的dev_pm_ops是内核新增的内容来准备替换platform_driver中的电源管理相关的内容.这里内容是先进行总体 ...

  9. μC/OS-III---I笔记1---概述

    在裸板上跑一些程序对于一些电子设计是足够的,所谓裸板上的程序就是传统的前后台系统,而我的理解它应该是一种"过程类"的程序,一个大循环(作为后台)做一些处理,中断程序(作为前台)来处 ...

  10. Ubuntu16安装chrome

    不免让您失望, 安装正常的chrome,Dependency is not satisfiable: libnss3 (>= 2:3.22)问题一直没能解决,故使用chromium次而代之. s ...