Skip to content

ljjmu222/learn-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 

Repository files navigation

4.9-4.14

  1. 继续完成本周遗留的任务: 完成函数功能,并且把函数的理解写下心得总结。--4.9
  2. 继续阅读Python指南数据结构章节,用脑图反馈你的输出记录。--4.10
  3. 按下面的要求重新修改代码:--4.11-4.14 a. 随机生成5个1~100内的数字,把它们放到列表(list)里 b. 然后把这个list里的元素从小到大进行排序(可以搜索一下冒泡排序),用一个独立的排序函数来排序 c. 根据排序,得出列表里最大的那个数,作为猜数字的答案 截止时间:04月14日 周日 18:00

learn-python-4.1打卡

猜数字

写一个程序,它将生成一个从一到一百的随机整数。在命令行运行该程序,然后它会提示你输入一个猜测值。然后你随便输入一个数字,它会依据你的输入的猜测值,告诉你猜测值是否过低或者过高。一旦你猜正确,它会输出祝贺你猜测成功的字符串。

关键字:

  • 生成一个从一到一百的随机整数
  • 提示你输入一个猜测值
  • 随便输入一个数字
  • 过低或者过高
  • 它会输出祝贺你猜测成功的字符串。

猜数字程序思路:

  1. 先定义的一个整数变量,变量的范围是1-100
  2. 变量随机生成一个整数
  3. 提示用户输入所猜数值
  4. 获取数值
  5. 判断数值类型,若不是整数,提示重新输入整数
  6. 用户输入的数与生成数比大小
  7. 输出结果,若大,输出大。若小,输出小,程序进入循环步骤“3-7”
  8. 如果相等,输出猜对了,程序结束。

learn-python-3.28打卡

5.第五章 数据结构

  • 5.1. 关于列表更多的内容
    • list.append(x) list.extend(L) list.insert(i, x) list.remove(x) list.pop([i]) list.clear() list.index(x) list.sort() list.reverse() list.copy()
  • 5.1.1. 把列表当作堆栈使用
    • 堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进append()先出pop())
  • 5.1.2. 把列表当作队列使用
    • 队列作为特定的数据结构,最先进入的元素最先释放(先进先出)--使用 collections.deque
  • 5.1.3. 列表推导式
    • 列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成。
    • [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    • 如果想要得到一个元组(例如,上面例子中的 (x, y)),必须要加上括号:
  • 5.1.4. 嵌套的列表推导式
  • 5.2. del 语句
    • 从列表中按给定的索引而不是值来删除一个子项: del 语句.
  • 5.3. 元组和序列
    • 元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可以有或没有括号,不过经常括号都是必须的
    • 能给元组的一个独立的元素赋值(尽管你可以通过联接和切割来模拟)。
    • 元组就像字符串, 不可变的。
  • 5.4. 集合
    • 大括号或 set() 函数可以用来创建集合
    • 集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # unique letters in a   
{'a', 'r', 'b', 'c', 'd'}
>>> a - b                              # letters in a but not in b
{'r', 'd', 'b'}
>>> a | b                              # letters in either a or b
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b                              # letters in both a and b
{'a', 'c'}
>>> a ^ b                              # letters in a or b but not both
{'r', 'd', 'b', 'm', 'z', 'l'}
  • 5.5. 字典
    • dict() 构造函数可以直接从 key-value 对中创建字典:
    • 字典推导式可以从任意的键值表达式中创建字典:
    • 如果关键字都是简单的字符串,有时通过关键字参数指定 key-value 对更为方便
  • 5.6. 循环技巧
  • 5.7. 深入条件控制
    • 比较操作符 in 和 not in 审核值是否在一个区间之内。操作符 is 和 is not 比较两个对象是否相同;
    • not 具有最高的优先级, or 优先级最低
  • 5.8. 比较序列和其它类型
    • 比较操作按 字典序 进行:首先比较前两个元素,如果不同,就决定了比较的结果;如果相同,就比较后两个元素,依此类推,直到所有序列都完成比较。如果两个元素本身就是同样类 型的序列,就递归字典序比较。如果两个序列的所有子项都相等,就认为序列相等。如果一个序列是另一个序列的初始子序列,较短的一个序列就小于另一个。字符 串的字典序按照单字符的 ASCII 顺序。
(1, 2, 3)              < (1, 2, 4)
[1, 2, 3]              < [1, 2, 4]
'ABC' < 'C' < 'Pascal' < 'Python'
(1, 2, 3, 4)           < (1, 2, 4)
(1, 2)                 < (1, 2, -1)
(1, 2, 3)             == (1.0, 2.0, 3.0)
(1, 2, ('aa', 'ab'))   < (1, 2, ('abc', 'a'), 4)

learn-python-3.27打卡

疑问

  • break
  • continue
  • pass

4.第四章 深入 Python 流程控制

  • 4.1 if语句
    • if else/if elif else
  • 4.2 for语句
  • 4.3 range()函数
    • range(3,10,2)"2"为步数,不能直接打印print(range(1,10))--使用list(range(5))
  • 4.4 break 和continue,以及循环中的else语句
    • break 循环被 break 中止的情况下不会执行。
    • continue 表示循环继续执行下一次迭代
  • 4.5. pass 语句 --啥也不做
  • 4.6. 定义函数
    • 关键字 def 引入了一个函数 定义。在其后必须跟有函数名和包括形式参数的圆括号。函数体语句从下一行开始,必须是缩进的。
    • return 语句从函数中返回一个值,不带表达式的 return 返回 None。
  • 4.7. 深入 Python 函数定义
  • 4.7.1. 默认参数值
    • 默认值只被赋值一次。
  • 4.7.2. 关键字参数
    • def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue')--"voltage"位置参数,state='a stiff'关键字参数。
    • 接受一个必选参数 (voltage) 以及三个可选参数 (state, action, 和 type)。
    • 关键字的参数必须跟随在位置参数的后面。
    • **name 的参数时,它接收一个字典
    • *name 的形式参数,它接收一个元组
  • 4.7.3. 可变参数列表
    • def concat(*args, sep="/"):
    • 可变 参数是参数列表中的最后一个,因为它们将把所有的剩余输入参数传递给函数。任何出现在 *args后的参数是关键字参数,这意味着,他们只能被用作关键字,而不是位置参数:
  • 4.7.4. 参数列表的分拆
    • 当你要传递的参数已经是一个列表,但要调用的函数却接受分开一个个的参数值。这时候你要把已有的列表拆开来。例如内建函数 range() 需要要独立的 start,stop 参数。你可以在调用函数时加一个 * 操作符来自动把参数列表拆开:
    • 以同样的方式,可以使用 ** 操作符分拆关键字参数为字典:
  • 4.7.5. Lambda 形式
    • lambda a, b: a+b
  • 4.7.6. 文档字符串
    • 如果文档字符串有多行,第二行应该空出来,与接下来的详细描述明确分隔。接下来的文档应该有一或多段描述对象的调用约定、边界效应等。
    • python 的解释器不会从多行的文档字符串中去除缩进,所以必要的时候应当自己清除缩进。
  • 4.7.7. 函数注解
    • 参数注解(Parameter annotations)是定义在参数名称的冒号后面,紧随着一个用来表示注解的值得表达式。返回注释(Return annotations)是定义在一个 -> 后面,紧随着一个表达式,在冒号与 -> 之间。
  • 4.8. 插曲:编码风格
    • 使用 4 空格缩进,而非 TAB
    • 折行以确保其不会超过 79 个字符
    • 可能的话,注释独占一行
    • 把空格放到操作符两边,以及逗号后面,但是括号里侧不加空格:a = f(1, 2) + g(3, 4)

learn-python-3.26打卡

3.第三章 使用 Python 解释器

  • 3.12 字符
    • '''...''',"""..."""进行标示字符串
    • n 标示转义
    • print() 函数生成可读性更好的输出, 它会省去引号并且打印出转义后的特殊字符
    • 如果你前面带有 \ 的字符被当作特殊字符,你可以使用 原始字符串,方法是在第一个引号前面加上一个 r:
      • 操作符连接, * 表示重复:
    • 相邻的两个字符串文本自动连接在一起,不能用于字符串表达式
    • 支持索引和切片
    • 切片长度就是两个索引之差。例如,word[1:3] 是 2 。正0,倒 -1。
  • 3.12 列表
    • 列表可以被索引和切片
    • squares = [1, 4, 9, 16, 25]
    • 列表是 可变的,可以使用 append() 方法在列表的末尾添加新的元素:
    • 也可以对切片赋值,此操作可以改变列表的尺寸,或清空它:
  • 3.2. 编程的第一步
    • 了解代码结构

learn-python-3.25打卡

疑问

  • 1.什么是脚本?
  • 2.python -c command [arg] ... 不生效?

1.第一章 开胃菜

  • 介绍python是一门解释型语言和扩展性

2.第二章 使用 Python 解释器

  • 2.1 Python 解释器 'source ~/.bash_profile' 配置环境变量
  • python / ipython
  • quit() 退出
  • 2.1.1. 参数传递
    • import sys
  • 2.1.2. 交互模式
  • 我们称解释器工作于 交互模式。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(>>>);继续的部分被称为 从属提示符,由三个点标识(...)
  • 2.2. 解释器及其环境
  • 2.2.1. 源程序编码 # -*- coding: encoding -*-

3.第三章 使用 Python 解释器

  • Python 简介
    • 从属提示符表示你需要在最后多输入一个空行,解释器才能知道这是一个多行命令的结束。
    • Python 中的注释以 # 字符起始,直至实际的行尾,文本字符串中的 # 字符仅仅表示 #
  • 3.1. 将 Python 当做计算器
  • 3.1.1. 数字
    • 运算符 +,-,* 和 / 与其它语言一样(例如:Pascal 或 C);括号 (()) 用于分组。
    • 除法(/)永远返回一个浮点数。 floor 除法 -- // ;余数-- %;** 运算符计算幂乘方;
    • 等号( '=' )用于给变量赋值,变量在使用前必须 “定义”(赋值)。
    • 交互模式中,最近一个表达式的值赋给变量 _
    • int 整数型,浮点型float。

learn-python-3.24打卡

心得

写一个程序的时候不可能一步到位,先分解任务,实现最小单位,一步一步的来,造一辆车不是先想怎么怎么让他跑起来,而是先搭建最小的元素,做一个轮子,搭建起一个框架,再想怎么让它跑起来,在这个过程中学会提问,将问题变形,不断思考解决问题的方式,并验证,在这个过程中,熟悉一个程序的语法和规则,从简单到复杂,再到简单,建立简单移动的命名方式。在这本书里,作者不仅教了怎么做一个游戏,更重要的是怎么思考。从做一个方块开始,引用存储区来存储数据,到运用背景色涂黑来实现移动,怎么缩短代码行数来引入循环,来实现下移这个过程,引用重复程序,进行复用来简化代码,测试程序,修正错误,找出问题的原因,为了让程序可读性更强,引入了中文命名,避免为了短而忽略可读性,理解操作是怎么回事,通过装置操控存储区,了解计算的本质,将问题转化,引用“输入”,目标和手段。

  1. 第八章
  • 进行转化成计算机明白的话
  • 从计算机的外部获取信息时还是使用存储区
  1. 第九章
  • 调整速度时,不仅有修改移动距离的方法,还有修改移动频率的方法
  • 使用除法时,小数点以下会直接舍去
  • 有条件运行和便于使用的“如果”
  • 之前所谓的条件是“计算的一种”
  1. 第十章
  • 最后想到两种以上的方法再编程
  • 或 用+连接
  • 且 用*连接
  • 从结果开始考虑
  • 当需要用大量的存储区时,需要计算编号,这时只能使用指定的编号的方法
  1. 第11章
  • 针对局部程序的“输入”这一新功能
  1. 第12章
  • 相对位置
  • 一点一点进行追加
  1. 第13章
  • 运用表格,缩短表格
  1. 第14章
  • 不断分解问题,将问题变形
  • 分解为最小目标
  • 学习功能、缩短程序、编写易懂的代码
  • 准备多个选项,进行对比、选择

learn-python-3.22打卡

读《我的第一本编程书》

1.第6⃣️章

  • 要让图像运动起来,就要先让他消除(涂上同样的背景色),再让他出现
  • 局部程序与外部程序的储存区编号不要重复
  • 关闭调控的功能和调控功能??????不明白 2.第7⃣️章
  • 局部程序内部创建的内容,只能在局部程序内部使用。
  • 局部程序外部创建的内容,只能在局部程序外部使用。
  • 如果局部程序不同,即使名字相同,存储区编号也不同。
  • 循环内部创建的内容,循环外部无法看到。
  • 使用命名存储区减少对注释的依赖

learn-python-3.21打卡

读《我的第一本编程书》

1.第一章

  • 思考怎么入手
  1. 第二章
  • 画面中由像素组成
  1. 第三章
  • 存储区可以替换成它保存的数字。
  • 算式中用括号来改变计算顺序
  1. 第四章
  • 程序不一定越短越好
  • 有时循环可以进行内外对调
  • 写注释 #
  1. 第五章
  • 使用局部程序可以通过引用来进行多次利用同一行

learn-python-3.20打卡

1.linux

  • 1969unix,贝尔实验室
  • 1973,C语言重写
  • GNU,自由开放的操作系统--GCC,开源,自由修改使用
  • GPL授权,通用公共许可证,防止专利软件,自由软件
  • 1991,芬兰

2.linux 主要版本

  • Ubuntu 2004.9 最为流行的桌面Linux发行版
  • RedHat,使用最广,商业
  • centOS,免费

3.linux 的优缺点

  • 性能稳定,安全性高,多人多任务,资源耗费低
  • 专业软件支持不够,厂商支持不够,标准化不足
  • centOS,免费

4.linux 文件系统

  • pwd 当前目录
  • ls list
  • .. 上层目录
  • . 当前目录

5.linux 文件说明

  • /home
  • /bin
  • / media
  • /etc 系统配置文件
  • /tmp 临时文件
  • /boot 系统内核和开机必要文件
  • /dev 系统所有的设备文件
  • /usr
  • /lost+found
  • /var/srv 用户数据
  • /proc
  • /lib

6.linux 文件说明

  • 不超过255
  • 区分大小写
  • ls -a -l /路径 -ld
  • 相对路径
  • 绝对路径 /
  • cp 复制
  • mv 移动
  • rm 删除 -f 直接删除 -r 递归删除 -i 交互式的
  • cat 查看文件 -b
  • less 分页显示 n next f
  • p 粘贴
  • u 撤销最近操作
  • touch 创建新文档
  • /text 查找

learn-python-3.19打卡

1. github使用

  • 创建自己的仓库
  • 修改并提交
  • 删除仓库
  • 回退版本
  • 命令行clone文件到本地
    • git clone
    • 编辑器修改
    • git status s - git add .
    • git commit -m '记录'
    • git push
    • git log
    • git reset --hard '版本号'
    • git reflog
    • git reset --hard '未来版本号'
    • vi 文件名
    • s 插入文件
    • :w
    • :q :wq
    • git checkout bug
    • git merge
    • mkdir

learn-python-3.18打卡

1. github

使用回顾

  • fork 分叉成自己的
  • clone 克隆一个项目
  • commmit to master 提交内容
  • roll back to this commit 版本回退
  • pull 跟新

2. markdown常用语法

  • #标题
  • 1.列表
  • 2 列表
  • 链接
  • 斜体
  • 粗体
  • 'hello world!'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages