廖雪峰Python教程之python基础

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后')

廖雪峰Python教程之python基础_第1张图片
这是因为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

廖雪峰Python教程之python基础_第2张图片
原因是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,看看是否会报错。

你可能感兴趣的:(Python教程)