#!/usr/bin/env python
-- coding: utf-8 --
‘’’
@author:MT
@file: 0423.py
@time: 2019/4/23 8:54
‘’’# userName = [“1111”,“zhangsan”,“lisi”,“wangwu”,“xiaoming”]
for i in userName:
# if “zhangsan” ==i: # i ==“zhangsan”
# break;
# print(i)# 大家给我记住了: 缩进符号很重要,
‘’’
1.如果全篇(就是python代码)没有缩进“tab”,那说明没有for while if
else eilf 等条件(流程)控制语句和循环控制语句。’’’# print("-------猜数字游戏-------")
import random # 导入随机数模块
random = random.randint(1, 10) # 生成1到10之间的随机数
print(“random:”,random)
num = int(input(“请输入1-10之间的任意一个数:”))# while True:
# num = int(input(“请输入1-10之间的任意一个数:”))
# if num >random:
# print(“大了,请重新输入:”)
# elif num <random and num !=-1:
# print(“小了,请重新输入:”)
# elif num == -1:
# print(“游戏结束”)
# break
# else:
# print(“猜对了”)
# break# for i in range(5):
# print(" “(5-i),"”*(i+1))
#定义好字典 {键:值,键:值}键:值,以逗号分隔
d = {“zhangsan”: 89, “lisi”: 90, “wangwu”: 78}
print(d)
print(d[“zhangsan”]) # 取字典里面的某个值
#改变字典当中的值
#方式一
d[“zhangsan”]=99
print(d[“zhangsan”])
#如果键不存在于字典当中会报错。
d[“xiaoming”]
KeyError: ‘xiaoming’#判断键是否存在于字典当中
print("----:",d.get(“lisi1”))#删除字典当中的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计算位置的算法(字典),我们称为: 哈希算法
‘’’# a = {1:“asd”,1:“qwe”}
print(a)dic1 = {“zhangsan”:[180,87,98]}
#如何取87
l = dic1[“zhangsan”]
l[1]
print(dic1[“zhangsan”][1])dic2 = {‘lisi’:{“爱好”:[1,2,3],“score”:98}}
#如何取3
a = dic2[‘lisi’][“爱好”][2]
print(a)# 字典、列表,循环,流程控制语句,整理博客(知识点和练习)
下周课堂练习考核。# zhangsan:89
lisi : 90
pycharm补充:
#!/usr/bin/env python
-- coding: utf-8 --
第一行注释是为了告诉 Linux/OS X 系统,这是一个 Python 可执行程序,Windows 系统会忽略这个注释;
第二行注释是为了告诉 Python 解释器,按照 UTF8 编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码
格式化:我们经常会输出类似’亲爱的 xxx 你好!你xx 月的话费是 xx,余额是 xx’
之类的字符串而 xxx 的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。```举例说明:print(‘Hello, %s’ % ‘world’)
print(‘Hi, %s, you have $%d.’ % (‘Michael’, 1000000))
说出的是什么
总结: %,%s,%d
% -----------------占位符。
%s ----------------表示字符串的占位符。
%d-----------------表示整数的占位符
常见的占位符: %d %f %sprint(’%2d-%02d’ % (3, 1))
print(’%.2f’ % 3.1415926)总结:
%2d -----表示两个占位符,如果数不够,用空格来站位
%02d-----也表示两个占位符,如果数不够,用0来站位
%.2f ------保留小数点后面两位。 如果你不太确定应该用什么占位符,
%s 永远起作用,它会把任何数据类型转换为字符串
print(‘Age: %s. Gender: %s’ % (25, True))
print(‘Age: %s. Gender: %s,score: %.5s’ % (25, True,89.786))
eg:89.786
%.3s ------表示3个位置,包括小数点,空格等。
89.
%.3f
------表示小数点后面三位。89.786 有些时候,字符串里面的%是一个普通字符怎么办?
这个时候就需要转义,用%%来表示一个%
print(‘growth rate: %d %%’ % 7)
7% format()
另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:
print(‘Hello, {0}, 成绩提升了 {1:.1f}%’.format(‘小明’, 17.125) 练习小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出’xx.x%’,只保留小数点后1位:显示类容为: hello, XXX,成绩提高了 xx.x%
s1 = 72
s2 = 85
r =
print(’???’ % r)
s1 = 72
s2 = 85
r = (s2 - s1)/s1*100
name = ‘小明’
print(‘hello, %s, 成绩提高了:%.2f %%’ % (name,r))
print(‘hello, %s, 成绩提高了:%.4s %%’ % (name,r)) 使用 list 和 tuple
也是一种python内置的数据类型。
Python 内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中
的元素 语法以及定义方式:
a = [] : []------方括号表示集合;【】[]
len(classmates)-1: 表示列表当中最后一个元素的索引。
L[3] = L[len(classmates)-1]
超出列表索引会报错
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): 删除指定索引的元素 classmates = [‘张三’, ‘李四’, ‘王五’,‘小明’]print(classmates)#删除元素
classmates.pop()print(classmates)classmates.pop(1)print(classmates) 列表内置方法:pop() :删除列表当中最后一个元素pop(index): 删除指定索引的元素append(value) : 在列表最后插入元素 (一个参数)insert(index,value):在指定索引处,插入元素。(两个参数)
列表插入删除练习:fruit = [‘苹果’,’香蕉’,’橘子’]1.
添加 ‘西瓜’到fruit列表的最后,打印输出fruit2.
添加 ‘草莓’到苹果的后面,打印输出fruit3.
删除 fruit列表的最后一个元素,然后打印输出fruit4.
删除 fruit列表的第2个元素,然后打印输出fruit5.
打印输出 ‘橘子’答案:1.
fruit.append(‘西瓜’)2.
fruit.insert(1,‘草莓’)3.
fruit.pop()4.
fruit.pop(2)5.
print(fruit[2])列表
list = [1,2,3,True,’小明’,None,3.124, [] ]二维列表:1.请用索引取出下面list的指定元素:# -- coding: utf-8 -- L = [ [‘Apple’, ‘Google’, ‘Microsoft’], [‘Java’, ‘Python’, ‘Ruby’, ‘PHP’], [‘Adam’, ‘Bart’, ‘Lisa’]] list复习, tuple学习 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 的元素就必须被确定下来。
eg:>>> t = (1,2)>>> t(1,2)1.
定义一个空tuple: tuple = ()2.定义只有一个元素的tuple: tuple = (1,)2. 请问以下变量哪些是tuple类型: a
= () b
= (1) c
= [2] d
= (3,) e
= (4,5,6)2. 条件判断语句# if…else# 比如,输入用户年龄,根据年龄打印输出不同的类容age = 20if age >= 18: print(‘你的年龄是 %s’ % age) print(“成人”)# 根据python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了。# 如果if语句判断是False, 就不执行。(否则什么都不做。)# 也可以给if添加一个else语句,意思是,如果if判断为False,不要执行if 的内容,# 去执行else 里面的内容。age = 5if age >= 18: print(‘你的年龄是 %s’ % age) print(“成人”)else: print(‘你的年龄是 %s’ % age) print(“未成人”) 注意: 不要少写了冒号 :# 可以用else if 缩写: elifage = 16if 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判断并打印结果:窗体顶端
-*- coding:
utf-8 --height = 1.75weight = 80.5bmi = ???if ???: print(“”)答案:weight = 80.5height = 1.75bmi = weight/(heightheight)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, “严重肥胖”))# 分别计算 张三、小明和小红的 bmiclassmate = [[‘张三’, 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, “严重肥胖”))