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. python爬虫下载小视频和小说(基础)

    下载视频: 1 from bs4 import BeautifulSoup 2 import requests 3 import re 4 import urllib 5 6 7 def callba ...

  2. C#(winform)button去掉各种边框

    仔细读完,主要在FlatAppearance属性里 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  B ...

  3. Zabbix 触发器配置多监控项阈值

    配置内存自定义监控项 # 监控内存命令 [root@web01 ~]# free -m|awk '/^Mem/{print $NF/$2}' 0.664609 [root@web01 ~]# free ...

  4. Atlas 分表功能

    目录 分表原因 分表方式 Atlas 分表 分表思路 配置 Atlas 创建原表 创建分表 数据测试 分表原因 1.数据过多,访问缓慢 2.创建索引时重新排序,创建缓慢,并且占用大量的磁盘空间 分表方 ...

  5. 实现基于股票收盘价的时间序列的统计(用Python实现)

    时间序列是按时间顺序的一组真实的数字,比如股票的交易数据.通过分析时间序列,能挖掘出这组序列背后包含的规律,从而有效地预测未来的数据.在这部分里,将讲述基于时间序列的常用统计方法. 1 用rollin ...

  6. CodeForces - 803C Maximal GCD 【构造】

    You are given positive integer number n. You should create such strictly increasing sequence of k po ...

  7. PHP7.1后webshell免杀

    严格的D盾 D盾说,我是个严格的人,看到eval我就报木马,"看着像"="就是"木马,宁可错杀一千,绝不放过一个.好了,多说无益,一起看看严格的D盾是如何错杀的 ...

  8. Trailing commas

    Trailing commas 尾逗号 https://caniuse.com/?search=trailing commas ESlint { "comma-dangle": [ ...

  9. SQL All In One

    SQL All In One Structured Query Language SQL is an ANSI (American National Standards Institute) stan ...

  10. HTML5 Learning Paths

    HTML5 Learning Paths HTML5 Expert refs https://developer.mozilla.org/en-US/docs/Web/HTML xgqfrms 201 ...