随处可见的python学习笔记-基础篇01
接下来请欣赏与众不同的表演。
![](https://upload-images.jianshu.io/upload_images/3923332-7041b4f1852a16ac.jpeg?imageMogr2/auto-orient/strip%7CimageView2/1/w/1240/h/650)
前言
Python,官方文档解释说:Python是一种面向对象的解释性高级语言,具有动态语义。
简单来说:Python是一种知道如何不妨碍你编写程序的编程语言。伪代码转换成Python几乎毫无成本。
不过相对应得,Python的运行效率也是相对低下的,曾经堪称最慢的脚本语言,不过,对于很多不怎么注重响应速度的应用,这并不重要。
毕竟,通常来说网络响应和硬盘读写比起这慢的一点点简直微不足道。更不用说如果有必要,完全可以将相应的模块替换成C系列的。
我之前并没有系统的学习过Python,于是这篇笔记将成为名副其实的笔记,而不是复习总结。
只论我现在刚学过的部分来说,它足够简单,作为脚本语言,我总是会拿去类比JavaScript,这点将贯穿我的整个笔记。
那么就让我们开始吧,让我想想学习Python之前需要准备什么?
emmm...也许是一把游标卡尺?
基本知识
各种小知识点常识一类
这里讲略过安装和环境变量配置。
笔记将以Python3为基础,并且不会提及与Python2的区别,毕竟我不懂。
有关Python的解释器,感觉上和Nodejs差不多..
变量声明,Python不能声明一个空变量,所有变量必须赋值,因为它没有默认值。
Python也没有显示的类型声明,这点和Js一样。
name = 'Tom' # 这就是一个字符串类型的Python变量了
age = 24 # 然后这就是一个数字类型了
# Python没有隐式转换,所以也没有===
age2 = '24'
age == age2 # 输出false
对了,注释,Python使用# 来表示注释。
基本运算:
Python最常应用的场景除了作胶水语言链接不同的模块,处理各种各样的字符串外估计就是科学计算了吧。
由于它很易用,所以常用在一些数学统计,或者处理批量重命名文件夹这样的场景上。
# 基本 + - * / 加减成除
# 不举例了
# // 整除 比如
5//3 # 输出1
# % 取余
5 % 3 # 输出 2
# ** 求冥(也许次方会更好理解?)
5 ** 2 # 输出25
# 取整等
# abs 取绝对值..啥?防抱死?没看见这是小写么...
# round 向最接近的取证,人话:四舍五入
# floor 向下取整 ..但是需要引用比如: from math import floor
import math
# math.floor 看上面
# math.ceil 向上取整
# foo 平方根
# 从取整开始都是函数调用类似
abs(-5) # 输出5 不举例了
最常见的大概就这些了吧,值得一提的是整除的应用,我从来没想过用它来判断是否为整点,或者一段时间的经过...
这次看的这本书给了些启发,虽然还没转化为实际。
# 获取用户输入
name = input('Name:' ) # 执行这句后可以输出,然后按回车,比如"Tom" enter
print(name) # Tom 或者别的你输入的内容
值得一提的是input可以用来作为一个脚本的结束语,这样可以实现,在直接执行的时候"执行结束,按任意键退出..."这样的效果。
字符串
单双引号,这里和Js及绝大多数编程语言一致,可以相互转译。\ 反滑线也是
# 不太一样的是Python有一个''' aaaaa ''' 三引号,功能和Js的`asdf`差不多,主要是表现长字符串来用的。
特色:原始字符串
path = r'C:\Program\Found\SomeThing\' #不会因为\而转译,简直路径必备
Unicode,编码类型一类的,略过...学的一知半解,不误导人了。
这块我向来是现学现用...
列表和元组
列表:基本和Js数组一致。
元组:不能修改的列表。
# 基本操作
# 索引
str = "Hello"
str[0] # 输出 H 和Js一样不能通过这个修改赋值
arr = [1,2,3,4]
arr[1] # 输出 2 可以修改值
# 切片
str = "Name is Tom"
str[0:4] # 输出 Name
arr = [1,2,3,4,5]
arr[0:2] # 输出 [1,2]
arr[1:3] # 输出 [2,3]
arr[1:-1]# 输出 [2,3,4]
# 从列子可以看出..和slice不一样..slice使用的是绝对位置相对切段,这里位置和切几个都是绝对的。
# 切片还有一个步长参数 类似 arr[0:2:1] 这样只会输出 1 也就是只取切片的一个值
# 切片可以赋值
arr[1:1] = [9,9,9] # 输出 [1,9,9,9,2,3,4,5] 插入
# 序列相加
[1,2,3]+[4,5,6] # 输出 [1,2,3,4,5,6] 拼接
# 乘法
arr*2 #输出 [1,9,9,9,2,3,4,5,1,9,9,9,2,3,4,5]
# 感觉似乎对于赋空值比较有用..
NoneArr = [None] * 3 # [None,None,None] # 可以得到任意长度的空列表
# 成员资格
str = "asdfg"
"s" in str # 输出 True
"m" in str # 输出 False
# 总的来说就是检查存不存在。
# len max nim
# 长度 最大值 最小值
# 列表的一些其他操作
# append # 后进 类似push
# pop #后出
# 上面两个可以实现后进先出(LIFO)
# 想先进先出(FIFO)的话,可以用insert(0,...)代替或者pop(0)代替pop
# clear 清空列表
# copy 复制列表,是浅拷贝
# count 统计一个元素出现了几次
# extend 可以将多个元素扩展到列表尾部
# index 查找一个元素第一次出现的索引值
# Insert 插入insert(i,...) 从i插入...
# remove 删除指定一个值,多个值得话只会删除第一个。
# reverse 反序
# sort 正序(可传参玩花样)
# 元组
# 基本列表能干的除了修改相关的都能应用于元组
1,2,3 #一个元组
(1,2,3) #更好懂的元组
(1,) #单个元素的元组 也许可以用于静态变量?
通常用元组作的事情,列表都能作,字典除外。因为字典不能被修改。
切片的话,列表返回列表,元组返回元组。
字符串
所有针对元组的操作都能针对字符串...比如:索引,切片,乘法,成员资质检查,长度,最小值和最大值。
# Str 插入
# type 1
str = 'Hello,%s a %s'
values = ('Wolrd','This')
str = str % values
print(str) # "Hello , 'Wolrd' a 'This'"
# type 2
str = 'Hello,{1} a {0}'.format('This','Wolrd') # 不指定的话按顺序给
print(str) # "Hello , Wolrd a This"
字符串插入其实有很多内容,在此只提最简单的调用。暂且按下不表,用到了再学。
# center 通过填充字符串使字符串居中
# find 查找子串查找到的话返回第一个字符串的索引
# join 合并序列为字符串
# lower 全小写字母
# title 首字母大写 类似的还有一个模块String 中的capwords
# replace 替换字符串中的一部分返回一个新字符串
# split 拆分字符串
# strip 去除字符串首尾的空白
# tanslate 与replace类似替换指定位置字符串,但只能替换单个
# 判断系列:isspace,isdigit,issupper,islnum,isalpha....等等等等 用到再学
结语
稍有常识的人都可以看出,这篇笔记还不完整:它没有示例。原因无它因为懒 我还没一一尝试。
这是名副其实的笔记,内容几乎是照着书本打的,并没有混入多少个人理解,因为我还不理解。
学习python第一天,虽然只了解一些基本的小细节和数据结构(数据结构还剩个字典没看)。
总的来说感觉并不难,很多内容会下意识的去对比JavaScript使得理解起来更加顺畅。早晚搞混,不推荐
算是对所谓举一反三的一个实践。
接下来几天,可能都是对python进行一定程度的自学,争取短时间看完基本语法。
还有一个批量重命名的需求等着我用它来实现。