因word和博客编辑器格式不能完全对接,正在重新排版,2019年1月1日发出第一章完整版
本文将参考《Python编程 从入门到实践》的讲述顺序和例子,加上自己的理解,让大家快速了解Python的基础用法,并将拓展内容的链接添加在相关内容之后,方便大家阅读。
好了!我们开始第一章的学习。
第一章 Python基础
python安装以及环境搭建
python的安装和环境变量的配置通过百度查询即可解决,这里不作赘述。
IDE的选择:因为后期需要用来做数据分析,所以直接安装Anaconda会是一个不错的选择
Anaconda详细安装使用教程
https://blog.csdn.net/program_developer/article/details/79677557
变量和简单的数据类型
这里可以想成Python是你的计算器,print(内容)的形式用来让呈现显示文字内容。
变量
变量可以这么理解:你有个朋友叫做斯坦尼斯拉夫斯基,你和他很要好,天天基在一起,但是他的名字太长了,叫起来好烦,所以你叫他屎蛋,这个“屎蛋“,就是斯坦尼斯拉夫斯基的变量名称,你叫他”屎蛋”或者斯坦尼斯拉夫斯基效果是一样的,但是叫屎蛋比较方便。当然你可以把这个称号放到别的东西身上,但是在Python的规则中,一个变量名只能对应一个实体,一个实体,可以有多个绰号。
将一条消息存储到变量中,再将其打印出来。
- stan="Hello,Konstantin Stanislavski!" #将"Hello,Konstantin Stanislavski!"命名为stan
- print(stan) #打印stan,-----print(内容)的形式用来让呈现显示文字内容。
输出:
Hello,Konstantin Stanislavski!
变量的命名规则
首字符必须是字母(大写或小写)或者一下下划线(’_’)
名称的其他部分可以由字母(大写或小写)、下划线(‘ _ ’)或数字(0-9)组成
对大小写敏感
有效变量名称的例子有 k、__my_num、name_1 和 a4b5_c6
无效 标识符名称的例子有 2board、this is me和my-num
变量的赋值: 变量名=值
字符串
字符串是由数字、字母、下划线组成的一串字符,当作字符串的数字不能用于计算,就像员工ID号一样,只是编码,没有计算意义。
字符串是不可变的,一旦创造了一个字符串,就不能再改变它。
【单引号(‘)】和【双引号(")】两者使用都是相同的,即‘hello‘ 等同 "hello"
【三引号(‘‘‘或""")】可以表示一个多行的字符串,在三引号中可以自由的使用单引号和双引号
【转义符】可以用 \‘ 来指示单引号——注意这个反斜杠,即‘What\‘s your phone number?‘。另一个表示这个特别的字符串的方法是"What‘s your phone number?",即用双引号。在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。
【自然字符串】前缀r或R表示“自然字符串”,转义失去意义,所见即所得。
【Unicode字符串】加前缀u或U, 如 u"this is an unicode string"
有时候字符串中的字母不符合我们强迫症的需求,所以Python提供了一些方法来统一字母的大小写。
- name=‘Eric‘
- print(name.lower()) #每个字母小写
- print(name.upper()) #每个字母大写
- print(name.title()) #首字母大写
输出:
eric
ERIC
Eric
有时候拿到的数据一些手残或者其他原因导致字符串前后带有空格,这种屈辱强迫症是不能忍的,必须把这些空格给我砍掉。
数字
来了,计算器来了~!
4种类型的数:整数、长整数、浮点数和负数。主要运算有加()、减(-)、乘(*)、除(/)。另外,乘方使用两个乘号表示,比如 3**2 ,即3的平方。
整数int:6、-1、070、-0520、-0x350、0x59等。
长整数long:5146561L、0132L、-0x19423L。长整型也可以使用小写L,但是还是建议大写L,避免与数字”1”混淆。Python使用”L”来显示长整型。
浮点数float:0.0、14.50、44.8e12、60.1E-12等。
复数complex:3.5j、4e5J等。用a bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
使用 str()可以将非字符串值表示为字符串。
- print(53)
- print(10-2)
- print(2*4)
- print(16/2)
- print(2**3) #2的3次方
输出:
8
8
8
8.0
8
关于这部分的官方文档:
https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator
注释
注释用井号#。井号后面的都会被python忽略,通常用来标注解释代码。就是你要告诉别人你这是要干啥,如果详细点,还可以记上为啥要这样做,方便后来者了解你的思路。
当前,大多数软件都是合作编写的,编写者可能是同一家公司的多名员工,也可能是众多致力于同一个开源项目的人员。训练有素的程序员都希望代码中包含注释,因此最好从现在开始就在程序中添加描述性注释。作为新手,最值得养成的习惯之一是,在代码中编写清晰、简洁的注释。
如果不确定是否要编写注释,就问问自己,找到合理的解决方案前,是否考虑了多个解决方案。如果答案是肯定的,就编写注释对的解决方案进行说明吧。相比回过头去再添加注释,删除多余的注释要容易得多。
列表简介
列表是是处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目。列表中的元素包括在方括号([])中,每个元素之间用逗号分割。列表是可变的数据类型,可以添加、删除或是搜索列表中的元素。
列表可以理解为你用铅笔在笔记本里记录内容, 内容可以修改,每一行用逗号隔开。
访问元素
访问列表元素可以通过索引方括号的形式,记住,索引从0而不是1开始!。
- shoplist = [‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘] # 建立一个列表,让他叫做shoplist (购物清单)
- print(shoplist)# 打印(购物清单)
- print(shoplist[0].title())#打印(购物清单的第一项的首字母大写形式)
- print(‘i want a‘ ‘ ‘ shoplist[0])#打印(我要一个 购物清单的第一项)
运行结果:
[‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘]
Apple
i want a apple
修改或添加元素
修改元素可以通过直接赋值的方法。
append() :将元素附加到列表末尾。#末尾添加一行笔记
insert() :在列表中指定位置添加新元素。#笔记本中指定位置添加一行笔记
del :删除列表中指定位置元素。# 笔记本中指定位置擦掉一行笔记
pop():移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 #把笔记中一行撕出来拿着,默认撕最后一行
remove():删除列表中第一个指定值的元素。# 笔记本中指定内容的一行笔记
- shoplist = [‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘]# 建立一个列表,让他叫做shoplist (购物清单)
- shoplist.append(‘duck‘)#在购物清单末尾添加一个“鸭子”
- print(shoplist)#打印购物清单
- shoplist.insert(0, ‘chick‘)#在购物清单首位插入一个“鸡”
- print(shoplist)#打印购物清单
- del shoplist[1]#删除购物笔记本中在序列1(第二个位置)的一行
- print(shoplist)#打印购物清单
- temp1 = shoplist.pop(0) #把购物清单中首行剪出来,叫做temp1(临时1)
- print(temp1)#打印临时1
- print(shoplist)#打印购物清单
- shoplist.remove(‘banana‘)#在购物清单中删除第一个内容是“banana”的一行
- print(shoplist)#打印购物清单
一行代码对比这几个方法的区别
运行结果:
[‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘, ‘duck‘]
[‘chick’, ‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘, ‘duck‘]
[‘chick’, ‘mango‘, ‘carrot‘, ‘banana‘, ‘duck‘]
chick
[‘mango‘, ‘carrot‘, ‘banana‘, ‘duck‘]
[‘mango‘, ‘carrot‘, ‘duck‘]
组织列表
sort():对列表进行永久性排序。默认按照字母顺序排列,相反顺序的话可以传递参数reverse=True #把原笔记直接按字母顺序排列
sorted():对列表进行临时排序,不改变原本列表。 #复印一份原笔记,按顺序排列
reverse():反转列表元素排序。#反向排列笔记(没有按特定规则重排,就是最后一个变成第一个)
len() :获取列表长度。#告诉你目前记了多少行笔记了,从一开始
- shoplist = [‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘]#建立一个列表,让他叫做shoplist (购物清单)
- shoplist.sort(reverse=True)#把购物清单排序(倒序)
- print(shoplist)#打印购物清单
- shoplist = [‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘]#建立一个列表,让他叫做shoplist (购物清单)
- print(sorted(shoplist))#打印排序过的购物清单拷贝
- print(shoplist)#打印购物清单
- shoplist.reverse()#把购物清单顺序颠倒
- print(shoplist)#打印购物清单
- len(shoplist)#看看购物清单有几行
运行结果:
[‘mango‘, ‘carrot‘, ‘banana‘, ‘apple‘]
[‘apple‘, ‘banana‘, ‘carrot‘, ‘mango‘]
[‘apple‘, ‘mango‘, ‘carrot‘, ‘banana‘]
[‘banana‘, ‘carrot‘, ‘mango‘, ‘apple‘]
4
-
操作列表
遍历列表
利用for循环可以快速遍历列表,不要忘记它的冒号!
- shoplist=[‘apple‘,‘mango‘,‘carrot‘,‘banana‘]#一个列表,让他叫做shoplist (购物清单)
- for shop in shoplist: #凡是在购物清单里面的,一个个抓出来执行下面的这句
- print(‘i want a ‘ shop.title()) # 打印 (我要 笔记里面的一行)
运行结果:
i want a Apple
i want a Mango
i want a Carrot
i want a Banana
缩进
行首的空白(空格和制表符)决定行的缩进层次,同一层次的语句必须有相同的缩进。
不要混合使用制表符和空格来缩进,在每个缩进层次要么使用单个制表符或 两个或四个空格。
数值列表
range():生成指定步长的左闭右开区间的一系列数字。默认步长为1。 相当于中文的从1到10这样的表达
list() :将参数转化为列表。 #把别的东西抄到笔记本里面来
min() :找出数字列表最小值。
max() :找出数字列表最大值。
sum() :求数字列表所有值相加的总和。
- nums = list(range(1,5))#建立一个从1-5 不包含5的列表 叫做nums ~numbers
- for num in nums:#凡是在nums单里面的,一个个抓出来执行下面的这些
- print(num)#打印数字
- print(min(nums))#打印nums里面最小的数字
- print(max(nums))#打印nums里面最大的数字
- print(sum(nums))#打印nums里面数字的和
运行结果:
1
2
3
4
1
4
10
列表解析可将for循环和创建新元素的代码合并成一行,并自动附加新元素。
- nums = [num*2 for num in range(1,11)]# 把1-11但不包括11的整数都乘以2 写进笔记本上,叫做nums
- print(nums) #打印nums
运行结果:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
使用列表的一部分——切片
创建切片时,要指定切片的第一个元素和最后一个元素的索引,和range()一样,区间为左闭右开。
如果没有指定第一个索引,切片将从列表开头开始。同理,如果没有指定最后一个索引,切片将直到列表末尾结束。负数索引可以输出离列表末尾相应距离的元素。
切片也可以作为列表遍历。
同时省略起始和终止索引可以穿件包含整个列表的切片,相当于复制列表。
- nums = list(range(0,11))#把0-11但不包括11的整数 写进笔记本上,叫做nums
- print(nums[0:5])#打印第0行到第5行
- print(nums[:6])#打印第0行到第6行
- Nums = nums[:] # 又把nums的全部命名为Nums
- print(Nums)#打印Nums
运行结果:
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
元组
元组不可以修改,使用圆括号标识。元组也可以用循环进行遍历。我们还能给元组的变量赋值。
元组可以理解为用钢笔写的笔记,不可以随意修改,添加内容,但是要注意,如果元祖的其中一行是一个可修改的东西,那这个东西还是可以修改的,就相当于钢笔的笔记里面,其中一行是铅笔写的便签,那么可以修改这个便签的内容
- nums = (1, 2)
- print(nums)
- nums = (4, 2)
- for num in nums:
- print(num)
运行结果:
(1, 2)
4
2
原文地址:https://www.cnblogs.com/romannista/p/10203250.html