一、基础知识(一)
基础知识的学习是Python初学者的必经之道,只有将基础打扎实了,才可能编织出想要的作品。图灵机的基本概念是:输入数据 - 经过预先逻辑性编程的算法进行化自动化数据处理 - 输出想要的结果。而编程就是在进行图灵机中的中间一布操作。
输入:input(),是一个Pyhton内置功能(函数),括号内可以输入提示信息,收集到的信息可以存入一个指定的变量。
比如:name = input(‘What is your name‘)
输出:print(),是一个Python内置功能(函数),括号内是要输出的内容,可以直接是要显示的内容,也可以是变量。
比如:print(‘Hello World‘)
>>> name = input(‘What is your name?‘)
What is your name?My name is Hello World
>>> print(name)
My name is Hello World
>>>
注意:input()收集到的所有数据默认都是字符类型,如果需要数值型,使用之前需要进行转换。
查看内容的数据类型,可以使用type()内置函数
字符型:string通俗来说就是文字数据,不能用来进行计算。通过str()内置函数可以将数值型的数据转为字符型。字符型内容在输入时需要 ‘单引号‘ 或者 "双引号" 或者 ‘‘‘三单引号‘‘‘。单引号和双引号的主要区别是,假如输入的字符串中需要进行转义单引号或者双引号,用不同符号可以减少转义的麻烦;三单引号则是对字符串可以进行保留格式的输出,比如保留换行格式。
整型:integer通俗来说就是整数数据,支持数学运算。通过int()内置函数可以将长得像整数的字符转为整型
浮点型:float通俗来说就是可以带小数点计算的数据,支持数学运算。通过float()内置函数可以将整型、字符型转为浮点型
布尔型:boolean通俗来说就是True和False两个值用于判断程序中条件成立还是不成立,数字0代表False条件不成立,数字1代表True条件成立。在比较时,如果是非0的正常判断,会认为是True,条件成立。
>>> type1 = ‘Hello‘
>>> type2 = 5
>>> type3 = 5.22
>>> type4 = True
>>> type5 = False
>>> type6 = 1<2
>>> type(type1)
>>> type(type1)
<class ‘str‘>
>>> type(type2)
<class ‘int‘>
>>> type(type3)
<class ‘float‘>
>>> type(type4)
<class ‘bool‘>
>>> type(type5)
<class ‘bool‘>
>>> type(type6)
<class ‘bool‘>
Python内置的if()函数,主要用于判断当条件为真或者假时分别执行不同的代码来处理数据。可以单独使用也可以搭配elif和else使用,也支持嵌套。
用法:
if 判断条件:
条件为真时执行
elif 其他判断条件:
条件为真时执行
else:
上述条件都不满足时执行
注意:if/elif/else后面分别要有冒号:结尾。if/elif/else要对齐。后续要执行的代码需要相对if/elif/else的起始位置要缩进4个空格。这样Python才能知道哪些语句是一个代码块,才能顺利执行。Python是靠代码缩进来判断代码块的。
用Python内置函数for 或者 while可以按指定条件循环执行代码,用于消除重复性的工作,提高代码执行效率。
一般for用于循环次数明确的情况,而while一般用于不知道要循环多少次的情况。
for用法:
for 变量(用于存放遍历到的值,通常用i表示,i代表item) in 要遍历的变量、字符串、列表、字典等可遍历的范围:
需要重复执行的代码块
else:
遍历完后如果重复执行的是条件语句并且都是false,那么可以搭配else执行其它需要的代码。为可选项。
比如:打印1-10的数字
>>> for i in range(1, 11):
... print(i)
...
1
2
3
4
5
6
7
8
9
10
>>>
while用法:
while 判断条件:
当条件为真时需要重复执行的代码块
else:
和for一样,遍历完后如果重复执行的是条件语句并且都是false,那么可以搭配else执行其它需要的代码。为可选项。
在执行重复语句块的时候,for 和 while 还可以搭配break和continue语句来控制是要跳出当前循环还是继续当前循环。
注意:语句后面不要忘了冒号:
有了基础的数据输入、输出和条件判断后,我们需要解决数据的基本存放问题。在Python中有三种常用的数据类型用于存放大量数据,分别为列表(list)、字典(dict)和元祖(tuple)。
list 列表:
列表存放数据的方式是把数据用方括号括起来,不同数据之间用逗号分隔,再把整个方括号赋值给一个变量,而被赋值的变量也就补称为列表名。列表中的数值可以做添加、修改和删除的操作。
如下:list1 是列表名,右边就是列表的值。
>>> list1 = [‘G‘,‘X‘,‘C‘]
>>> type(list1)
<class ‘list‘>
>>> print(list1)
[‘G‘, ‘X‘, ‘C‘]
有存就有取,如何从列表中取数呢?
使用 列表名[位置号] 的方式就可以将列表中相应的值取出来。列表中的"位置号",从左往右是从0开始取值依次加1,如果从右往左取值,那么是从-1开始的。举例如下:
>>> list1 = [‘G‘,‘X‘,‘C‘]
>>> print(list1[0])
G
>>> type(list1[0])
<class ‘str‘>
>>> list2 = [1,2,3]
>>> type(list2[0])
<class ‘int‘>
>>> print(list1[-1])
C
>>>
列表中取值中的‘切片’,其实就是指从列表中截取(切取)指定一片范围的数值。用 列表名[开始位置:结束位置]来进行取值。需要注意的是,开始位置的值是包含在取值范围中,而结束位置的值是不包含在取值范围中的(左取右不取)。另外如果从第一个数值就开始取的话,前面的开始位置可以省略直接写成 列表名[:结束位置]的格式,同理如果从某一位置一直取到最后的值,那么可以写成 列表名[开始位置:]的格式。举例如下:
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3]
>>> print(list4[:3])
[‘G‘, ‘X‘, ‘C‘]
>>> print(list4[3:])
[1, 2, 3]
>>> print(list4[1:4])
[‘X‘, ‘C‘, 1]
>>>
当然列表也支持嵌套,当有嵌套列表时取值思路为,先锁定最外层列表的位置号,再锁定中间层,直至最后的数值位置。格式为:列表名[外层位置号][中间层位置号]…[数值位置号]。即先把嵌入的列表看作一个大数值,逐渐分解。举例如下:
>>> list3 = [‘G‘,‘X‘,‘C‘,[‘A‘,‘B‘,‘H‘,[‘D‘,‘E‘,‘F‘,[‘I‘,‘J‘,‘K‘,]]]]
>>> print(list3[1])
X
>>> print(list3[3][1])
B
>>> print(list3[3][3][3][2])
K
>>>
列表中除了支持嵌套列表,还支持字典的嵌套。同样字典中也可以嵌套列表。
列表中常用的数值添加方式:
>>> print(list1, list2)
[‘G‘, ‘X‘, ‘C‘] [1, 2, 3]
>>> list4 = list1 + list2
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3]
>>>
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3, ‘Y‘]
>>> list4.extend(list3)
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3, ‘Y‘, ‘G‘, ‘X‘, ‘C‘, [‘A‘, ‘B‘, ‘H‘, [‘D‘, ‘E‘, ‘F‘, [‘I‘, ‘J‘, ‘K‘]]]]
>>>
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3]
>>> list4.append(‘Y‘)
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3, ‘Y‘]
>>>
列表中常用的数值修改方式:
>>> print(list1)
[‘G‘, ‘X‘, ‘C‘]
>>> list1[1] = ‘C‘
>>> print(list1)
[‘G‘, ‘C‘, ‘C‘]
>>> list1[2] = ‘Y‘
>>> print(list1)
[‘G‘, ‘C‘, ‘Y‘]
>>>
列表中常用的数值删除方式:
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3, ‘Y‘, ‘G‘, ‘X‘, ‘C‘, [‘A‘, ‘B‘, ‘H‘, [‘D‘, ‘E‘, ‘F‘, [‘I‘, ‘J‘, ‘K‘]]]]
>>> del list4[6:]
>>> print(list4)
[‘G‘, ‘X‘, ‘C‘, 1, 2, 3]
>>>
dict字典:
有了列表的知识,理解字典就相对容易些。相比列表是用中括号[]来保存数据,字典是用大括号{}来保存数据的,不同的是字典中的数值必须对应一个在同一字典中数值唯一的 key键值 (因为字典需要靠这个键值来查字典的嘛),而不同键对应的值是可以相同的。由于字典中的值是一对一对的,所以也被称为“键:值”对,键值对之间用逗号分隔。同列表一样,字典中的数据也是可以进行添加、修改和删除操作的。
>>> dict1 = {‘name‘:‘GXC‘,‘sex‘:‘male‘}
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘}
>>> type(dict1)
<class ‘dict‘>
字典中数据的读取:
和列表中不同的是,列表中使用的是位置号索引进行取值,字典由于有key,所以用key值进行取出相对应的值,即 字典名[key值],如下
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘}
>>> print(dict1[‘sex‘])
male
>>>
字典中键值对的添加和列表相似,也只是把位置号用key来代替,即 字典名[‘新键‘] = ‘新值‘ 如下:
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘}
>>> dict1[‘height‘] = 175
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘, ‘height‘: 175}
>>>
字典中值的修改,只要指定需要修改的key,然后给值赋上新值既可,字典名[‘要修改的值对应的键‘] = ‘新值‘ 如下:
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘, ‘height‘: 175}
>>> dict1[‘height‘] = 176
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘, ‘height‘: 176}
>>>
字典中值的删除也和列表类似,使用 del 字典[要删除的key],删除的时候key和值会一起被删除,谁让它们是一对呢:)
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘, ‘height‘: 176}
>>> del dict1[‘height‘]
>>> print(dict1)
{‘name‘: ‘GXC‘, ‘sex‘: ‘male‘}
>>>
tuple元祖:
说完列表和字典,tuple元祖就更容易了。和列表、字典的主要区别是,元祖是用小括号来放数值的,即 元祖名 = (值),同样小括号中的值用逗号分隔。元祖中的值主要用来被读取的,不能直接添加、修改和删除。
读取方式:和列表相似 元祖名[位置号]
>>> tuple1 = (‘G‘,‘X‘,‘C‘)
>>> type(tuple1)
<class ‘tuple‘>
>>> print(tuple1[1])
X
>>>
虽然不能直接添加、修改元祖中的值,但支持多个元祖拼接到一个新的元祖里去:
>>> print(tuple1,tuple2)
(‘G‘, ‘X‘, ‘C‘) (1, 2, 3)
>>> tuple3 = tuple1 + tuple2
>>> print(tuple3)
(‘G‘, ‘X‘, ‘C‘, 1, 2, 3)
>>>
虽然不能删除元祖里的值,但使用 del 元祖名 可以直接把整个元祖删了:
>>> print(tuple3)
(‘G‘, ‘X‘, ‘C‘, 1, 2, 3)
>>> del tuple3
>>> print(tuple3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ‘tuple3‘ is not defined
>>>
原文:https://www.cnblogs.com/selamet/p/10360267.html