python笔记
python是一门很优雅的编程语言,它有应用范围广泛、开源、社区活跃、丰富的库、跨平台等等特点,容易上手
由于之前有了解过python的一些知识,所以在此跟随[Crossin的编程教室]学习直接作为复习笔记
初识python
[1]Print
与c语言不同,python中的打印就是英文单词print,而且使用print()就能将括号内的东西直接打印出来
比如
print("hello,world")
print(1)
这里注意,在print结束后光标会自动移动到下一行
然后要将不同数据打印到同一行时,可以使用+把它们连接起来,比如变量与字符串
print("ABC"+123)
[2]变量
Python的变量类型更为简单,它在使用时不需要复杂的声明,它的简单在这里就是一个很好的体现
直接a=123就好了
这里把python的数据类型表示方式举栗子
- 字符串 : 表示一串字符,需要用''单引号或""双引号包围起来
- 整数
- 浮点数 : 就是小数
- bool(布尔类型): 这个比较特殊,是用来表示逻辑上的“真”和“假”(或者说“是”和“非”)的一种类型,它只有两个值,True 和 False
a=1
print(a)
a='hello'
print(a)
看,不需要类型的转换,就是对变量直接赋值就可以使用,十分灵活
[3]input
既然有了输出,要进行所谓的“人机交互”,怎么能没有输入呢,所以在这里要学习到input
input可以直接读取接下来用户输入的指令
现在你就可以写一个问候的小程序
print("who are you?")
a=input()
print("hello "+a)
二.控制流语句
python控制语句与c语言逻辑基本一致,所以这里列出语法格式与一些说明
[1]if
if 条件:
执行的语句
elif 条件:
执行的语句
else :
执行的语句
简单易懂,若满足条件,执行即可
[2]while
while 条件:
循环执行的语句
同,若符合条件则循环执行
[3]for
python的for语句与c语言还不太一样,python的for有着更多的应用方式
例如
for i in range(1, 101):
print(i)
这是for in 语句,将in后的序列依次赋值给in前的变量
这里解释下range()的作用,range(1,101)为1到100的一个序列,此外,可以直接用range(101)来表示从0到100的序列 以上的程序就是将1到100的值一依次赋值给i,然后将每一次赋值的语句打印出来
当然不只是range组成的数字序列,字符串以及后面学到的列表都可以用来遍历
[4]示例
<附加>random模块 我们可以用randint方法用来生成随机数使用方法也很简单,如下
from random import randint
num = randint(1, 100)
这样就将1到100的随机数给了num
然后我们就可以进行一个简单的猜数字小游戏了,这也是当初我学习编程的第一个完整的程序
from random import randint
num=randint(1,100)
anwser=0
while anwser!=num:
anwser=int(input())
if anwser>num:
print("too big")
if anwser<num:
print("too small")
if anwser==num:
print("bingo")
print("you are nb man")
这样的一个小程序当初很大的激发了我学习编程的兴趣
三.list
[1]初探list
list即为列表,列表的作用很大,它与c语言中的数组很像,但又在很多地方要远远优于数组,数组只能储存一类数据,而list可以同时储存多种类型的数据,之前用到过的range(1,101)就是创建立一个数组的函数
我们也可以创建自己的列表,例如
l1 = [1, 1, 2, 3, 5, 8, 13]
l2 = ['meat', 'egg', 'fish', 'milk']
l3 = [365, 'everyday', 0.618, True]
就这样,我们创建了自己的数组
[2]访问list
list创建后,肯定是要访问,跟数组相同,list的访问也是使用数组名加[下标]的方式来代表list中的元素,比如l1[0]代表的就是1,要改变list中的元素,直接对其赋值即可,此外,list存在倒序访问,如l2[-1]代表的元素即为数组中倒数第1个元素'milk'
list有一个append方法,可以增加元素,调用的方法是:l2.append('chiken'),使用这个方法就在list的末尾增加了新的元素
同样,有增加就有删除,del l1[0],使用这个方法就能删除指定的list中的元素,del l2[start : end]这样就可以删除指定范围的元素了
采用len(数组名)就能获取数组的长度
注: 如果不指定第一个数,切片就从列表第一个元素开始。 如果不指定第二个数,就一直到最后一个元素结束。 都不指定,则返回整个列表。
[3]字符串分割
在python中,字符串可以进行分割,分割后的字符串被分为好几个小的部分,并成为列表的元素
通过split()就能实现上述操作
sentence = 'I am an English sentence'
l1=sentence.split()
通过这样就能得到一个新的列表l1=['I', 'am', 'an', 'English', 'sentence']
除了空格外,split()同时也会按照换行符\n,制表符\t进行分割。所以应该说,split默认是按照空白字符进行分割。 当然也可以根据其他字符进行分割,在括号内指定即可
[4]连接list
有了分割,当然也要有连接,join方法就能将list连接在一起
s = ';'
li = ['apple', 'pear', 'orange']
fruit = s.join(li)
print (fruit)
join方法的参数就是要连接的字符,通过join方法,就能得到一个字符串
[5]list方法在字符串中的应用
<1>遍历
通过for方法可以遍历字符串中的每一个字符5
<2>索引
通过字符串加索引的方法可以访问字符串中的每一个字符,但不能通过对其赋值而改变字符串
<3>切片
通过与list相同的截取方法可以截取到字符串的片段
<4>连接
join方法同样可以对字符串进行使用,能够将字符串中的字符通过指定字符重新连接成一个新的字符串
[6]列表解析
通过此方法可以更为方便的进行列表相关操作,十分便捷
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = []
for i in list_1:
if i % 2 == 0:
list_2.append(i)
print (list_2)
要实现此功能就可以用这个方法
list_1 = [1, 2, 3, 5, 8, 13, 22]
list_2 = [i for i in list_1 if i % 2 == 0]
print (list_2)
四.文件操作
[1]读文件
f = open('data.txt')
data = f.read()
print (data)
f.close()
如同c语言,对于文件的打开方式方法一致,但更为简洁,通过f.read可以读取文件中的所有内容 此外readline() 可以用来读取一行内容 readlines() 可以把内容按行读取至一个list中
[2]写文件
python默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入:
这些模式也跟c语言一样,如w就是write模式,就可以写入文件(覆盖原有内容)
f = open('output.txt', 'w')
f.write('a string you want to write')
还有一种常用模式是'a',appending。它也是一种写入模式,但你写入的内容不会覆盖之前的内容,而是添加到原有文件内容后面。
五.字典
字典是一种数据类型,它在c中并没有,正如其名,像字典一样,它能将一个变量与另一个变量连接
d = {key1 : value1, key2 : value2}
key叫做键,这里要注意 1.键必须是唯一的; 2.键只能是简单对象,比如字符串、整数、浮点数、bool值。
python字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。例如d[key1]
这种独特的数据类型能够很方便的一对一进行索引,很方便的一点是,如果用get方法来访问对应的key值不出存在,d.get(key4)则返回值为none