#以.py结尾的文件就是模块。文件夹就是包,来组织模块,避免模块名字的冲突。
#因为notebook的默认把文件存为。ipynb格式。但是python中只能导入.py格式,所以要在notebook中先另存为。才能继续导入。
'''下面有三种语法格式第一种:import 包名称将整个模块导入到当前的代码中第二种:import 包名称 as 别名之后可以用别名来代指包第三种: from 包名称 import 函数名这种方法只把模块中的一部分(函数)导入到代码里。'''
from collections import deque
#定义队列:医院病人编号
queue=deque(['001','002','003','004','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '004', '005', '006'])
#以.py结尾的文件就是模块。文件夹就是包,来组织模块,避免模块名字的冲突。
#因为notebook的默认把文件存为。ipynb格式。但是python中只能导入.py格式,所以要在notebook中先另存为。才能继续导入。
'''下面有三种语法格式第一种:import 包名称将整个模块导入到当前的代码中第二种:import 包名称 as 别名之后可以用别名来代指包第三种: from 包名称 import 函数名这种方法只把模块中的一部分(函数)导入到代码里。'''
from collections import deque
#定义队列:医院病人编号
queue=deque(['001','002','003','004','005'])
#入队:在队列尾部插入元素
queue.append('006')
print(queue)
deque(['001', '002', '003', '004', '005', '006'])
#出队:在队列头部删除元素
queue.popleft()
print(queue)
deque(['002', '003', '004', '005', '006'])
#定义栈:学生考试科目的顺序
stack=deque(['语文','数学','英语'])
#入栈:在栈顶加入元素
stack.appendleft('物理')
print(stack)
deque(['物理', '语文', '数学', '英语'])
stack.append('化学')
print(stack)
deque(['物理', '语文', '数学', '英语', '化学'])
stack.popleft()
'物理'
stack.pop()
'化学'
#Python默认的字典 key是无序的
#学生及学号
stunoDict={'小红':'20170102','小兰':'20170304','佳佳':'20170506','丹丹':'20170503','艾米':'20189394','小马':'20189396'}
stunoDict
{'小红': '20170102',
'小兰': '20170304',
'佳佳': '20170506',
'丹丹': '20170503',
'艾米': '20189394',
'小马': '20189396'}
#Collention 中 排序字典
#OrderedDict:按照插入key的顺序,对字典排序
from collections import OrderedDict
#定义有序字典
stunoOdDict=OrderedDict({'小红':'20170102','小兰':'20170304','佳佳':'20170506','丹丹':'20170503','艾米':'20189394','小马':'20189396'})
stunoOdDict
OrderedDict([('小红', '20170102'),
('小兰', '20170304'),
('佳佳', '20170506'),
('丹丹', '20170503'),
('艾米', '20189394'),
('小马', '20189396')])
#计数器
from collections import Counter
cDict=Counter('有一种鸟是永远也关不住的,因为它们的羽毛太光亮了。羽毛太光亮。')
#出现次数最多的三个词
cDict.most_common(3)
[('的', 2), ('羽', 2), ('毛', 2)]
#条件判断
# if -else
score=int(input("请输入考试成绩:"))
if (score>=60):
print("及格啦")
else:
print("不及格,需要补考")
请输入考试成绩:78
及格啦
#if-elif-else
score=int(input("请输入考试成绩:"))
if score>=80 and score<=100:
print("等级为优秀")
elif score>=60 and score<80:
print("等级为一般")
else:
print("等级为不及格")
请输入考试成绩:78
等级为一般
#用for循环可以很方便的清理数据。
#举例。把学生代码都转换为大写的统一格式’
'''定义字典:6个学生的学生代码key是学生名字,value是学生代码'''
stunoDict={'小红':'xiaohong','小兰':'XiaoLan','佳佳':'JIAJIA','丹丹':'Dandan','艾米':'Amy','小马':'xiaoma'}
#将学生代码全部大写
for key,value in stunoDict.items():
#对学生代码转换成大写
newValue=value.upper()
#将转换后新的学生代码献值给key
stunoDict[key]=newValue
print(stunoDict)
{'小红': 'XIAOHONG', '小兰': 'XIAOLAN', '佳佳': 'JIAJIA', '丹丹': 'DANDAN', '艾米': 'AMY', '小马': 'XIAOMA'}
#continue用于跳出当前循环
'''Python continue 语句跳出本次循环,而break跳出整个循环。continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。'''
#stunoDict={'小红':'xiaohong','小兰':'XiaoLan','佳佳':'JIAJIA','丹丹':'Dandan','艾米':'Amy','小马':'xiaoma'}
for key,value in stunoDict.items():
if (key=='丹丹'):
continue
print('当前学生:',key ,',当前学生代码:', value)
当前学生: 小红 ,当前学生代码: XIAOHONG
当前学生: 小兰 ,当前学生代码: XIAOLAN
当前学生: 佳佳 ,当前学生代码: JIAJIA
当前学生: 艾米 ,当前学生代码: AMY
当前学生: 小马 ,当前学生代码: XIAOMA
'''定义函数这里我们定义一个函数and主要功能是实现加法。函数功能:两个数相加输入:x,y两个参数是要相加的数输出:z.代表将计算结果返回给调用函数的人。'''
#名称代表功能,输入参数代表输入数据,返回数据代表输出数据
'''def 函数名称(参数1,参数2):函数体return输出'''
#一般函数名称最好能体现函数的功能。
def add(x,y):
z=x+y
return z
#使用函数
a=1
b=2
#这里把函数的返回值定义给C,这样用C来保存函数的输出值。
c=add(a,b)
print('1和2相加等于',c)
1和2相加等于 3
'''函数传递有两种方法:第一种按定义函数时函数的顺序传入参数,调用是函数参数的数量必须和声明时一样多。比如第一个参数a对应函数定义时的第一个参数x.第二个参数b对应定义时候的第二个参数y。第二种传递方法是使用参数的名称传入参数值。给参数名称赋值。带参数名称传递的方式可以保证传入参数的准确性。这种传递方法可以在定义函数之前进行。没有必要的顺序。'''
a=1
b=2
c=add(x=a,y=b)
print('1和2相加等于',c)
#函数参数-不可变数据类型
#定义函数:改变数据的值
def transInt(a):
a=a**2
'''使用函数参数是不可变数据类型(字符串、元组,数值):传递的只是该数据类型的值(相当于复制一部分)'''
b=1
print('调用函数之前b的值:',b)
transInt(a=b)
print('调用函数之后b的值:',b)
#如果传给函数的参数是字符串、元组和数字这3种不可更改的对象,参数传递时,相当于传递的是复制出来的数据,
#对数据本身没有影响
调用函数之前b的值: 1
调用函数之后b的值: 1
'''如果传给参数的数据类型是可变的类型,那么它传出的是该数据的变量引用地址。当函数内部修改数据时,原始的数据也就改变了。'''
#函数参数:-可变数据类型
#定义函数-改变列表的值
def changeList(inputList):
inputList.append('苹果')
fruitList=['香蕉','橘子']
print('修改之前的列表为:',fruitList)
changeList(inputList=fruitList)
print('修改之后的列表为:',fruitList)
修改之前的列表为: ['香蕉', '橘子']
修改之后的列表为: ['香蕉', '橘子', '苹果']
#程序的变量并不是在哪个位置都可以访问的。访问权限取决于这个变量是在哪里赋值的。这就是变量作用域。
#变量作用域决定了哪一部分程序可以访问哪一个特定的变量名称
'''Python的作用域有两种,包括全局作用域和局部作用域。定义在函数内部的变量拥有局部作用域,定义在函数外面的变量有全局作用域。局部变量只能在被声明的函数内部访问,而全局变量可以在整个程序范围内访问。'''
#变量作用域
def test():
aStr='测试开始'
#在函数外面,访问函数内的局部变量aStr,notebook 会报错。
print(aStr)