python 正式学习第一个月

本贴最后更新于 2057 天前,其中的信息可能已经事过景迁

1.起源

一次群里闲聊,加入了由阳光发起的 python 自动运维学习的群。起初,阳关死活不让我加入群,因为他知道我有一点编程的基础,觉的不适合一起学习。我硬是死皮赖脸的,让他把我拉到群里里面。

加群的第一天,阳关和我说了规则,具体规则如下:

image.png

我很慌,万一落下一次,我需要发一个 4 个人的 300 元红包,作为一次惩罚。因为钱少了,不会心疼。钱多了,反而起不到作用。300 元还是属于能接受的范围。

就这样我加入了这样的一个学习团队中去,目前群李只有四个,我、阳光、老李头、还有个记不得名的大佬。

2.学习总结

我学习的方式是按着《python 编程-让运维工作自动化》这边书,阅读,做习题的方式来的

2.1 书目大纲

第一部分 Python 编程基础

第 1 章 Python 基础 

第 2 章 控制流 

第 3 章 函数 

第 4 章 列表 

第 5 章 字典和结构化数据 

第 6 章 字符串操作 

第 7 章 模式匹配与正则表达式 

第 8 章 读写文件 

第 9 章 组织文件 

第 10 章 调试 

第 11 章 从 Web 抓取信息 

第 12 章 处理 Excel 电子表格 

第 14 章 处理 CSV 文件和 JSON 数据 

第 15 章 保持时间、计划任务和启动程序

第 16 章 发送电子邮件和短信 

第 17 章 操作图像 

第 18 章 用 GUI 自动化控制键盘和鼠标

2.2 学习过程

1.Python 中的变量不需要声明.每个变量在使用前都***==必须赋值==***,变量赋值以后该变量才会被创建。这一点和 js 语法有点区别,注意区分

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

       6 种数据类型
**>  **Number(数字)
**>  **String(字符串)
**>  **List(列表)
**>  **Tuple(元组)
**>  **Sets(集合)
**>  **Dictionary(字典)

Python3 支持 int、float、bool、complex(复数)。常见就是==int float bool==

可以通过使用 del 语句删除单个或多个对象,用逗号分隔

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。
列表和元组类似 javascript 中的 array
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
注意:
>>1、字典是一种映射类型,它的元素是键值对。
**>**2、字典的关键字必须为不可变类型,且不能重复。
**>**3、创建空字典使用 { }。

表达式是由 值和操作符组成的结合,所以的表达式都求值为一个值.

表达式需要有重新赋值才能改变变量的值

str(99)*3
>'999999'

#学习编程的一定会学的语句 ```
from lufeipython.Chapter1.user_input import name

print("hello Python!")

2+2 是表达式也称为归约

2**2 即 2 的 2 次方,也是表达式运算优先级最高的

% 取余数

有趣的是 python 的除法

三个除法的概念 传统除法/精确除法/地板除法

1、传统除法:整数相除结果是整数,浮点数相除结果是浮点数

2、精确除法:无论操作数是整数还是浮点数,得到的商总是真实结果,总是得到浮点数

3、地板除:无论操作数是整数还是浮点数,得到的商不保留浮点数的尾数

在 python2.6 版本中 4/2 是等于 2 的 只有 3 版本的时候结果是 2.0

_### 数据类型_1.整型(int)

2.浮点型(float)

3.字符串

用于字符串的时候表示复制  只能用于字符串和数字,不能用 strstr

比如"li"*5 输出 "lilililili"

变量名区分大小写

整数可以与浮点型的值相等

round 函数四舍五入取值

_### 布尔型_值只有 True/False

小写的会报错

比较操作符 比较两个值,求值为一个布尔值

布尔操作符

and 与 or 或 not 非 需要注意的话 这边和 javascript 以及其他部分语言有区别  || && !

_### 操作流的元素_操作流的元素开始部分通常为"条件",接下来是一个代码块

passwd: str = input()  
  
if name == "mufengs":  
    print("hello mufengs")  
if passwd == "233":  
    print("access granted")  
elif passwd == "234":  
    print("good")  
else:  
    print("wrong passwd")  

### while 语句_### break 语句__###continue 语句_像 break 一样,continue 语句在 while 语句内部执行

_###for 循环和 round()函数_代码执行有限次数的时候选用 当然也有办法用 while 实现

类真类假的值可以让代码的可读性增强

等价于 for 的 while 循环方式

print('my name is')  
o = 0  
while o < 5:  
    print('Jimmy Five Times(' + str(o) + ')')  
    o = o + 1  

range()的开始/结束/步长

如 range(0,10,2)

_### from import 语句_如 from random import *

用 sys.exit()提前结束程序

_## 第二章习题_等于操作符和赋值操作符的区别是什么

==是等于操作符,它比较两个值,求值为一个布尔值,而=是赋值操作符将值保存在变量中

Round 函数返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果

abs() 函数返回数字的绝对值。

_## 第三章函数_def() 参数是变元也就是其他语言中的变量

_### 3.3 None 值_在 python 中有一个值为 None,他表示没有值

a = print("1111")  
  
print(a)  

上面的例子可以明确的看出来 print 是不可以参与值的赋值运算的

print("23", end="...")  
print("456")  

23...456 #修改默认换行的

print('cats', 'dogs', 'mice', sep="...")  

cats...dogs...mice sep 表示修改默认的分割符号,默认是空格

_### 3.5 局部变量不能在全局作用域下使用_如下例子所示

def spam():  
     eggs = 31337  
spam()  
print(eggs)  
# Traceback (most recent call last):  
#   File "<input>", line 1, in <module>  
# NameError: name 'eggs' is not defined  

_### 3.6 global 语句_如果想在一个函数中修改全局变量中的存储的值,就必须对该变量使用 global 语句

_### 3.7 异常处理_try 和 except 语句
如下面的 try

_## 第三章小姐_函数是将代码逻辑分组的主要方式

_## 第四章列表_列表是一个值,它包含多个字构成的序列

在一个切片中,第一个整数是切片开始处的下标,第二个整数是切片结束处的下标

列表多重赋值

变量的数量和列表的长度必须严格相等,否则出现 ValueError

cat = ['name', 'age', 'weight']  
name, age, weight = cat  

类似列表 字符串和元组

元组 tuple (1,2,3)

列表 list [1,2,3]_###copy()和 deepcopy()_copy()可以用来复制列表和字典这样的可变值,而不只是复制引用

如果复制列表中包含列表,就需要使用 copy.deepcopy()这个函数来代替

_## 第五章 字典和结构化数据_字典类似与列表,但是没有下标

可以参考 js 的对象,区别是调用的时候一个用. 一个用[]

键值对输入的顺序不重要和列表的区别,列表的顺序是重要的

_## 第六章 字符串操作_多行注释可以使用 """    """

1.程序设计和数据结构
2.处理命令行参数

_## 第七章 模式匹配与正则表达式_强口令检测

2.3 学习心得体会

其实学习编程,以前什么都不知道反而好学一点,因为你会发现,在学习得过程中会不断得对比,哎在 xxx 语言中是这么用,python 中怎么不一样,有容易记混淆得可能性。打个比方,如 js 中得或与非,是用 || && !这些表示的,而在 python 中你需要用 or and not 来表示。你可以不在句子的结尾写;但是你的缩进一定要正确。这一个月,恶补了一些 python 的基础知识,比如元组,列表,字典等等。也写过一些简单的 python 程序,必须用 python 实现根据 isbn 号查书目信息,scrapy 爬取豆瓣分类书目信息等。今天是这个月的最后一天,继续加油!

3.下一阶段学习计划

准备基于 jumpserver 二次开发,加入 nginx 配置管理,数据库管理,svn 管理(虽然实现了,但是过于简单只是基于文件修改的)等功能

github 地址:https://github.com/mufengcoding/PythonOps

有想加入群聊一起学习的,可以加我微信 Do8080

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    541 引用 • 672 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...