01_37_python基础学习总结_0423

**

1.列表

**
使用 list 和 tuple
也是一种python内置的数据类型。
Python 内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素
在这里插入图片描述

超出列表索引会报错 eg: classmate[4]报错,超出索引
IndexError:list index out of range

添加元素方法:
append() : 在列表最后插入元素(一个参数)
insert():在指定索引处,插入元素。(两个参数)**

classmates = ['张三', '李四', '王五','小明']
print(len(classmates))
#classmates的长度是多少?
# 超出列表索引会报错
# IndexError: list index out of range
# 如何将 '小红'加入当classmates这个列表当中
classmates.append('小红')
#append():
向列表当中添加元素。列表当中的方法,用'.'点,调用。
# append():添加的元素是在列表的最后。
#如何添加到列表的指定位置,eg:添加到第一个位置
# classmates.append(0,'小白')
# TypeError: append() takes exactly one argument (2 given)
#append(): 只能接受一个参数,我们给了它两个参数,所以会报错
classmates.insert(0,'小白')
#insert():在指定索引处,插入元素。

删除元素:
列表内置方法:
pop() :删除列表当中最后一个元素
pop(index): 删除指定索引的元素
append(value) : 在列表最后插入元素 (一个参数)
insert(index,value):在指定索引处,插入元素。(两个参数)

#pop() :删除列表当中最后一个元素
#pop(index): 删除指定索引的元素 classmates = ['张三', '李四', '王五','小明']
print(classmates)
#删除元素
classmates.pop()
print(classmates)
classmates.pop(1)
print(classmates)

列表插入删除练习

fruit = ['苹果','香蕉','橘子']
1.添加 ‘西瓜’到fruit列表的最后,打印输出fruit
2.添加 ‘草莓’到苹果的后面,打印输出fruit
3.删除 fruit列表的最后一个元素,然后打印输出fruit
4.删除 fruit列表的第2个元素,然后打印输出fruit
5.打印输出 ‘橘子’
答案:
1.fruit.append('西瓜')
2.fruit.insert(1,'草莓')
3.fruit.pop()
4.fruit.pop(2)
5.print(fruit[2])

**

二维列表:

**

在这里插入图片描述

练习:
1.请用索引取出下面list的指定元素:

  L = [    
  ['Apple', 'Google', 'Microsoft'],   
  ['Java', 'Python', 'Ruby', 'PHP'],  
  ['Adam', 'Bart', 'Lisa']
    ]

在这里插入图片描述
打印Apple:

print(L[0][0])

打印Python:

print(L[1][1])

打印Lisa:

print(L[2][2])

打印PHP

print(L[1][3])

**

列表总结

**

list列表: 一种数据类型,有序集合,可以任意添加删除元素。 []

tuple元组:也是一种数据类型,有序,不能添加或删除元素,即:tuple一但初始化就不能修改了。没有list
的添加删除方法(没有append(),insert(), pop()等方法)。 定义:L=()
,其他和list相同,eg:索引表示,计算tuple长度:len()。

classmates = (‘zhangsan’,’lisi’,’wangwu ’,’’sdf”)

money=(3000,4000,5000)

tuple的意义优点:tuple一但初始化就不能修改了,代码更安全。如果可能,能有tuple代替list就尽量用tuple。

list = [[]] : 二维列表。

tuple = ([1,2,3],[4,5,6],[7,8,9])

如果tuple里面有list,那么可以改变list的元素。

tuple = ([1, 2, 3], [4, 5, 6], [7, 8, 9])

print(tuple[0])

print(type(tuple[0]))

print(tuple[0].append(122))

print(tuple)

6 --------- tuple[1][2]

tuple 的缺陷:当你定义一个tuple时,在定义的时候,tuple 的元素就必须被确定下来。

**

2.条件判断语句

**

#if…else
#比如,输入用户年龄,根据年龄打印输出不同的类容

age = 20
if age >= 18:
    print('你的年龄是 %s' % age)
    print("成人")

#根据python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了。
#如果if语句判断是False, 就不执行。(否则什么都不做。)
#也可以给if添加一个else语句,意思是,如果if判断为False,不要执行if 的内容,
#去执行else 里面的内容。

age = 5
if age >= 18:
    print('你的年龄是 %s' % age)
    print("成人")
else:
    print('你的年龄是 %s' % age)
    print("未成人")

注意: 不要少写了冒号 :
#可以用else if 缩写: elif

age = 16
if age>=18:
    print("adult")
elif age >= 10:
    print("青少年")
elif age >=6:
    print("青少年1")
else:
    print("kid")
# elif 是 else if 的缩写,完全可以有多个elif。 

语法
‘’’
if <条件判断1>:
<执行内容1>
elif <条件判断2>:
<执行内容2>
elif <条件判断3>:
<执行内容3>
else:
<执行内容n>
‘’’
说明: 从上往下判断,如果在某个判断上为True,那么把判断对应的语句执行后,就忽略掉剩下的elif和else。

练习:

小明身高1.75m,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
用if-elif判断并打印结果:

答案:

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

改版: 用户自动输入,加格式化练习

name = input("请输入名字:")
weight = float(input("请输入体重:"))
height = float(input("请输入身高:"))
bmi = weight/(height*height)
if bmi<18.5:
    print(name,"的bmi为:%.2f,为  %s" % (bmi,"过轻"))
elif bmi<=25:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "正常"))
elif bmi<=28:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "过重"))
elif bmi<=32:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "肥胖"))
else:
    print(name, "的bmi为:%s,为  %s" % (bmi, "严重肥胖"))

改版二: 加上list练习

#分别计算 张三、小明和小红的 bmi
classmate = [['张三', 67, 1.75],['小明', 77, 1.80],['小红', 88, 1.90]]
name = classmate[0][0]
weight = classmate[0][1]
height = classmate[0][2]
bmi = weight / (height * height)
if bmi < 18.5:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "过轻"))
elif bmi <= 25:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "正常"))
elif bmi <= 28:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "过重"))
elif bmi <= 32:
    print(name, "的bmi为:%.2f,为  %s" % (bmi, "肥胖"))
else:
    print(name, "的bmi为:%s,为  %s" % (bmi, "严重肥胖"))

3.循环

 userName = ['zhangsan', 'lisi', 'wangwu', 'xiaoming', '小红']如何打印输出userName里面的每一个元素??       
    print(userName[0])
    print(userName[1])
    print(userName[2])
    print(userName[3])
    print(userName[4])

如果list里面有100这样的元素怎么办??
ist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99]

range(N)--------生成0-N个元素组成的列表。 [0,N) ,左闭右开

range(m,n)------生成m-n个元素组成的列表

range(0,100,2) -----在[0-99)中,以step=2的间隔生成元素,组成列表。

other = range(100)
print(other)
python2版本才可以测试:

在这里插入图片描述
循环:Python 的循环有两种,一种是 for…in循环,依次把 list 或 tuple 中的每个元素迭代出来
for循环语法:
for 迭代变量 in 对象(序列):
循环体
流程图:

在这里插入图片描述

  userName = ['zhangsan', 'lisi', 'wangwu', 'xiaoming', '小红']
    for name in userName:
        print(name)
  '''
            所以for name in userName: 循环就是把userName 的每个元素代入变量name,然后执行缩进块的语句
1.name变量的名字是我们随便取的,但是一般情况下要遵循驼峰命名法。也就是你自己要清楚你取的名字的意思。
2.userName ----一般情况下是可以迭代的元素,如list何tuple ,字符串。
3.低层运行流程: 
 	首先,判断userName里面是否有第一个元素,如果有,将userName 的第一个元素的值赋值给 name。如果没有,则结束循环。
        然后,判断userName里面是否有下一个元素,如果有,将userName 的下一个元素的值赋值给name。如果没有,则结束循环。
4.注意一定要有冒号
'''

循环去做:
计算 1-10的整数之和:

sum = 0
for i in range(0, 11):
    sum+= i
print("sum=", sum)

‘’’
解释:
sum = 0+1 -----> sum=1
sum = 1+2 ------> sum = 3
sum = 3+3 -----> sum =6

sum = sum+10 -----> sum=55
计算机当中: sum= sum+i
一般写成 sum+=i
‘’’
计算1-100的整数之和。

   sum = 0
   for i in range(1, 101):
        sum+= i
    print("sum=", sum)

计算1-100的偶数之和。

 sum = 0
 for i in range(0, 101,2):
	sum+= i
 print("sum=", sum)

计算1-100的奇数之和。

sum = 0
for i in range(1, 101,2):
    sum+= i
print("sum=", sum)

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

L = ['Bart', 'Lisa', 'Adam']
for i in L:
   print('Hello,',i,"!")

while 循环:
语法:
while 条件表达式:
循环体

在这里插入图片描述
第二种循环是while 循环,只要条件满足,就不断循环,条件不满足时退出循环。
比如我们要计算 100 以内所有奇数之和,可以用 while 循环实现:
计算 100 以内所有奇数之和

sum = 0
n = 99
while n > 0:
    sum= sum + n
    n = n - 2
print sum

在循环内部变量 n 不断自减,直到变为-1 时,不再满足 while 条件,循环退出。
continue语句会立即跳到循环的顶端,即跳过本次循环,执行下一次循环
break 语句会立即离开循环

**

4.字典

**
之前的数据类型:字符串,整数,浮点数,布尔值,none
集合:list(列表) tuple(元组)
数据类型:dict(全称dictionary)字典,使用 键(key)-值(value)对 存储;优点:具有极速的查找速度。
eg列表:

username = ["lisi","wangwu"]
	  score = [3,4]

字典:用大括号{}表示
定义好字典{键:值,}键:值,以逗号分隔

d = {"zhangsan": 89, "lisi": 90, "wangwu": 78}
print(d)
print(d["zhangsan"]) # 取字典里面的某个值

改变字典当中的值
#方式一

d["zhangsan"]=99
print(d["zhangsan"])

如果键不存在于字典当中会报错。

d[“xiaoming”]
KeyError: ‘xiaoming’

删除字典当中的wangwu元素

d.pop("wangwu")
print(d)

一行一行的输出字典当中的键值

print(d["zhangsan"])
print(d["zhangsan"])
print(d["lisi"])

循环打印字典

d1 = {"zhangsan": 89, "lisi": 90, "wangwu": 78}
for i in d1: # i 表示的是字典当中的键, d[i]---字典当中的值
    print("---",i,d1[i])

总结,和list相比,dict的优缺点

1.查找和插入的速度快,不会随着key的增加而增加
2.需要占用大量内存,内存浪费

list 优缺点

1.查找和插入的时间,随着元素的增加而增加
2.占用空间小,浪费内存小。

dict的注意事项

字典当中的key是不可变对象,唯一,不能重复 通过key计算位置的算法(字典),我们称为: 哈希算法

练习:
dic1 = {“zhangsan”:[180,87,98]}

#如何取87
A = dic1["zhangsan"]
print(A[1])

dic2 = {‘lisi’:{“爱好”:[1,2,3],“score”:98}}

#如何取3
a = dic2['lisi']["爱好"][2]
print(a)

猜你喜欢

转载自blog.csdn.net/QVQ_Alone/article/details/89508663
今日推荐