唐抉的个人博客

python学习笔记(二)

字数统计: 1.2k阅读时长: 5 min
2022/10/09

条件判断

方法一:if...else语句

1
2
3
4
if <条件1>:
<执行1>
else
<执行2>

方法二:if ...elif...else语句

1
2
3
4
5
6
if <条件1>:
<执行1>
elif <条件2>:
<执行2>
else:
<执行3>

input条件输出

input()返回值的数据类型是str,str不能直接与整数比较,若要与整数比较,要先把str转换为整数类型,如下代码所示:

1
2
3
4
5
6
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')

若输入值不为数字时,如输入abc,则条件语句可写成:

1
2
3
4
5
s=input('birth:')
if s!='zero':
print('00前')
else:
print('00后')

练习题

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

  • 低于18.5:过轻
  • 18.5-25:正常
  • 25-28:过重
  • 28-32:肥胖
  • 高于32:严重肥胖

if-elif判断并打印结果:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-

height = 1.75
weight = 80.5
bmi = weight/(height*height)
if bmi<18.5:
print('过轻')
elif 18.5<=bmi<25:
print('正常')
elif 25<=bmi<28:
print('肥胖')
else:
print('严重肥胖')

循环

方法一:for...in循环

例如计算1-100的整数之和:

1
2
3
4
t=0
for i in range(101):
t=t+i
print(t)

方法二:while 循环

例如计算100以内所有奇数之和:

1
2
3
4
5
6
t=0
n=99
while n>0:
t=t+n
n=n-2
print(t)

练习题

请利用循环依次对list中的每个名字打印出Hello, xxx!

1
2
3
4
# -*- coding: utf-8 -*-
L = ['Bart', 'Lisa', 'Adam']
for i in L:
print('Hello,'+i+'!')

break与continue

break语句可提前退出循环,continue语句可跳过当前这次循环,直接开始下一次循环。

字典dict

字典使用键-值存储,具有极快的查找速度。dict内部存放的顺序与key的放入顺序无关。为保证哈希的正确性,dict的key必须是不可变对象,如list是可变的,不能作为key,dict的key不能重复

与list相比,dict的特点为:

  • 查找和插入的速度极快,不会随key的增加而变慢
  • 需要占用大量内存

形式如下

1
2
d={'Zhangsan':92,'Lisi':80,'Wangwu':56}
print(d['Lisi'])

通过key将数据放入dict

如把key为Lisi、value为68的数据放入dict:d['Lisi']=68

注意:多次对一个key放入value,后面的值会把前面的值冲掉,如此时Lisi的value值由80变成了68。

删除一个key

如要删除Lisi,其对应的value也会从dict中删除:d.pop('Lisi')

避免key不存在的错误

方法一:

通过in判断key是否存在:'Jack' in d

方法二:

通过get()方法判断key是否存在,若key不存在,默认返回Nomed.get('Jack')

通过get()方法判断key是否存在,若key不存在,返回指定的value:d.get('Jack',-1)

集合set

set与dict类似,也是一组key的集合,但不存储value。与dict相同,key不能重复,故在set中没有重复的key,也同样不能放入可变对象。此外,set也可看成数学意义上无序和无重复元素的集合。

创建一个set,需要提供一个list作为输入集合,其形式如下

1
2
3
4
s=set([1,2,3])
print(s)
>>>s
{1,2,3}

注意:传入的参数是一个list,而显示的{1,2,3}只是说明set内部有1,2,3这3个元素,显示的顺序也不代表set就是有序的

重复元素在set中自动被过滤

如下面所示:

1
2
3
4
5
s=set([1,1,2,2,3,3])
print(s)
#运行结果如下
s
{1, 2, 3}

通过add(key)方法将元素添加到set中

如在set中先后两次添加元素4:

1
2
3
4
5
6
7
8
s=set([1,2,3])
s.add(4)
print(s)
s.add(4)
print(s)
#运行结果如下
{1, 2, 3, 4}
{1, 2, 3, 4}

可以看到,元素可以重复添加,但会被set自动过滤掉重复的元素。

通过remove(key)方法删除元素

如删除元素4:

1
2
3
4
s=set([1,2,3,4])
s.remove(4)
print(s)
>>>{1, 2, 3}

两个set可以做交集、并集等操作

1
2
3
4
5
6
7
s=set([1,2,3,4])
d=set([3,4,5,6])
print(s&d)
print(s|d)
#运行结果如下
{3, 4}
{1, 2, 3, 4, 5, 6}

小结

list、tuple是有序可重复

dict、set是无序不可重复

四者形式上的区别:

1
2
3
4
list=[value,value]
tuple=(value,value)
dict={key:value,key:value}
set=([key,key])
CATALOG
  1. 1. 条件判断
    1. 1.1. 方法一:if...else语句
    2. 1.2. 方法二:if ...elif...else语句
    3. 1.3. input条件输出
    4. 1.4. 练习题
  2. 2. 循环
    1. 2.1. 方法一:for...in循环
    2. 2.2. 方法二:while 循环
    3. 2.3. 练习题
    4. 2.4. break与continue
  3. 3. 字典dict
    1. 3.1. 避免key不存在的错误
      1. 3.1.1. 方法一:
      2. 3.1.2. 方法二:
  4. 4. 集合set
  5. 5. 小结