Python学习(从廖雪峰老师的教程入手的,教程链接:廖雪峰的python教程)
python装的是3.6版本,我建议新手直接装个Anaconda完事,里面集成了python以及用到的各种工具,我用的jupyter notebook编写代码,编译起来超级方便。
第一章:python基础
1.list和tuple
(1) list(列表)list添加和删除一个元素,也等价于出栈和入栈操作.
1).出栈
list =['1','2','3']
list.pop()
list
Out:['1', '2']
2).入栈
list.append('1')
list
Out:['1', '2', '1']
(2)tuple(元组) tuple和list非常类似,但是tuple一旦初始化就不能修改
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
t
Out:('a', 'b', ['X', 'Y'])
作业题完成情况:
请用索引取出下面list的指定元素:
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
print(len(L))
for i in range(len(L)):
print(L[i])
Out:
3
['Apple', 'Google', 'Microsoft']
['Java', 'Python', 'Ruby', 'PHP']
['Adam', 'Bart', 'Lisa']
for i in range(len(L)): #不能写成for i in len(L): len(L)是一个具体的数值,不是一个可迭代的范围
for j in range(len(L[i])):
print(L[i][j])
Out:
Apple
Google
Microsoft
Java
Python
Ruby
PHP
Adam
Bart
Lisa
2.条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
只要判断条件判断是非零数值、非空字符串、非空list等,就判断为True,否则为False。
再议 input
最后看一个有问题的条件判断。很多同学会用input()读取用户的输入,这样可以自己输入,程序运行得更有意思:
list = input('birth: ')
if(list>2000):
print("00后")
else:
print('非00后')
这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
list = input('birth: ')
birth = int(list)
if(birth>2000):
print("00后")
else:
print('非00后')
Out:
birth: 2014
00后
当然,如果输入的是非数值型,无法与后面的数类型一致进行判断,程序也会报错。
作业:
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
import math
height = 1.75*10
weight = 80.5
BMI = math.pow(weight/height , 2)
if(BMI>32):
print("严重肥胖")
elif(BMI>28):
print("肥胖")
elif(BMI>25):
print("过重")
elif(BMI>18.5):
print("正常")
else:
print('过轻')
Out:
正常
3.循环
练习
请利用循环依次对list中的每个名字打印出Hello, xxx!:
L = [‘Bart’, ‘Lisa’, ‘Adam’]
L = ['Bart', 'Lisa', 'Adam']
for item in L:
print("Hello, " + item)
Out:
Hello, Bart
Hello, Lisa
Hello, Adam
break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
3.使用dict和set
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
for item in d:
print(item)
print(d[item])
Out:
Michael
95
Bob
75
Tracy
85
删除一个元素,删除指定的key,其value值也会跟着一并被删除
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
d.pop('Bob')
Out:
75
d
Out:
{'Michael': 95, 'Tracy': 85}
set集合
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
set = set([1, 1, 2, 2, 3, 3])
set
原因是set和set函数重名了,先用del()方法删除set变量,变量换成其他名称就好了。
del(set)
s = set([1, 1, 2, 2, 3, 3])
s
Out:
{1, 2, 3}
s.add(65)
s
Out:{1, 2, 3, 65}
s.remove(2)
s
Out:{1, 3, 65}
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。