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. zoj3623 Battle Ships

    Battle Ships is a new game which is similar to Star Craft. In this game, the enemy builds a defense ...

  2. c语言实现链表增、删、改、查及文件读写 && 链表实现程序

    一.链表实现增删改查 1.链表定义 1 #include<stdio.h> 2 #include<string.h> 3 #include<windows.h> 4 ...

  3. Leetcode(105)-从前序与中序遍历序列构造二叉树

    根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15, ...

  4. μC/OS-III---I笔记3---时间管理

    时间管理相关函数,其实深入根本的理解就是一些对时间任务相关变量,数据结果进行修改的函数这样方便对应任务查找延时等时间相关的任务有没有到期.前面的时间相关的函数是这些操作的基 1.延时函数 OsTIme ...

  5. how to convert Map to Object in js

    how to convert Map to Object in js Map to Object just using the ES6 ways Object.fromEntries const lo ...

  6. navigator.geolocation.getCurrentPosition

    navigator.geolocation.getCurrentPosition Geolocation API Specification 2nd Edition W3C Recommendatio ...

  7. es6 & map & set

    es6 & map & set Map & WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re ...

  8. macOS 屏幕共享, 远程协助

    macOS 屏幕共享, 远程协助 Screen Sharing App 隐藏 app bug command + space 搜索 https://macflow.net/p/397.html Tea ...

  9. free Google translator for the personal website

    free Google translator for the personal website https://html5.xgqfrms.xyz/

  10. ip/udp/tcp包 学习

    /** * 以太网 */ class Ethernet { static readonly size = 14; get Destination(): string { return [ this.v ...