PYTHON学习第一天
主要内容:
Python简史、变量与赋值、循环控制、条件判断、常用数据类型---之讲义研习
数据类型:integer,string(原子性数据对象),tuple,list,dict(容器性数据对象)
分为两类:不可变数据类型:string,integer,tuple和可变数据类型list,dict
-----------------------------------------------------------------
字典: 字典是Python语言中唯一的映射类型。
两大特点无序可变
---创建字典的方法[a,b,c]
1 phonebook = {'':'2341','Beth':'9102','Ceil':'3258'}
2 可以用dict函数通过映射(比如其他字典)或者(键,值)这样的序列建立字典。
>>> key = 'name'
>>> info = { key :'cold'} # {'name':'cold'}
>>> info = dict(key = 'cold') # {'key': 'cold'}
>>> items = [('name’,’yuan’),(‘age'.42)]
>>> d = dict(items)
>>> d
{'age':42,'name’:’yuan’}
>>> d = dict(name=‘yuan’,’age'=42)
>>> d
{'age':42,'name’:’yuan’}
————常用方法
x.get(key):获得字典中key对应的值
x.items():获得字典中所有的元素
x.iteritems():用迭代方式获得字典中所有的元素
x.pop(key):删除字典中对应的key-value
x.keys():返回字典中所有的键
x.values():返回字典中所有的值
x.update(y):使用y字典更新x字典
>>> info = {'name':'cold', 'blog':'linuxzen.com'}
>>> info['name'] 'cold' 但是如果获取不存在的键的值就会触发的一个KeyError异常,字典有一个get方法,可以使用字典get方法更加优雅的获取字典
>>> info = dict(name= 'cold', blog='www.linuxzen.com')
>>> info.get('name') 'cold'
>>> info.get('blogname') None
>>> info.get('blogname', 'linuxzen')
'linuxzen'
我们看到使用get方法获取不存在的键值的时候不会触发异常,同时get方法接收两个参数,当不存在该键的时候就会返回第二个参数的值 我们可以看到使用get更加的优雅
1.4 更新/添加
Python 字典可以使用键作为索引来访问/更新/添加值
>>> info = dict()
>>> info['name'] = 'cold'
>>> info['blog'] = 'linuxzen.com'
>>> info
{'blog': 'linuxzen.com', 'name': 'cold'}
>>> info
{'blog': 'linuxzen.com', 'name': 'cold night'}
同时Python字典的update方法也可以更新和添加字典
>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.update({'name':'cold night', 'blogname':'linuxzen'})
>>> info {'blog': 'linuxzen.com', 'name': 'cold night', 'blogname': 'linuxzen'}
>>> info.update(name='cold', blog='www.linuxzen.com') # 更优雅
>>> info
{'blog': 'www.linuxzen.com', 'name': 'cold', 'blogname': 'linuxzen'}
Python字典的update方法可以使用一个字典来更新字典,也可以使用参数传递类似dict函数一样的方式更新一个字典,上面代码中哦功能的第二个更加优雅,但是同样和dict函数类似,键是变量时也只取字面值
1.5 字典删除
可以调用Python内置关键字del来删除一个键值
>>> info = dict(name='cold', blog='linuxzen.com')
>>> info {'blog': 'linuxzen.com', 'name': 'cold'}
>>> del info['name']
>>> info
{'blog': 'linuxzen.com'}
同时也可以使用字典的pop方法来取出一个键值,并删除
>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.pop('name') 'cold'
>>> info
{'blog': 'linuxzen.com'}
1.6 其他操作 获取所有key
>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.keys()
['blog', 'name']
获取key,value并循环
>>> info = dict(name='cold', blog='linuxzen.com')
>>> for key, value in info.items():
... print key, ':', value
...
blog : linuxzen.com
name : cold
-------------------------------------------------------------
1:运算符(掌握)
(1)算术运算符
+,-,*,/,%,
+:正号,加法,字符串连接符
%:两数相除,得到余数
(2)赋值运算符
=,+=,-=,*=,/=,%=
注意:赋值的左边不能是常量。
(3)条件运算符
==,!=,>,>=,<,<=
A:结果肯定是boolean类型。
B:不要把==写出=。
(4)逻辑运算符
&:有false则false
|:有true则true
^:相同为false,不同为true。通过情侣关系来理解。
!:非false则true,非true则false。偶数次不改变以前的真假。
&&:和&的结果一样,但是具有短路效果。左边有false,右边不执行。
||:和|的结果一样,但是具有短路效果。左边有true,右边不执行。
----------------------------------------------------------------
2 语句(程序的流程控制语句)的分类:
A:顺序结构 从上往下依次执行。
B:选择结构
if else 语句
C:循环语句
for else
while else
------------------------------------------
2.1 :选择结构之if语句(重点)
(1)格式:
方式1:
if(条件表达式):
语句体
执行流程:
看条件表达式的返回值:
true:执行语句体;
false:不执行,可以继续向下执行。
方式2:
if(条件表达式):
语句体1
else:
语句体2
执行流程:
看条件表达式的返回值:
true:执行语句体1
false:执行语句体2
注意:
if语句的第二种格式在某些情况下可以和三元运算符等价转换:
(python中并没有像c++,java中的三元运算符?,不过我们可以利用if_else达到同样的效果)
语句体1 if (条件表达式) else 相同操作下的不同结果
方式3:
if(条件表达式1):
语句体1
elif(条件表达式2):
语句体2
elif(条件表达式3):
语句体3
时
...
elif(条件表达式n):
语句体n
执行流程:
看条件表达式1的返回值:
true:执行语句体1;
false:看条件表达式2的返回值:
true:执行语句体2;
false:...
可能所有的语句体都没有被执行。
方式4:
if(条件表达式1):
语句体1
elif(条件表达式2):
语句体2
elif(条件表达式3):
语句体3
...
elif(条件表达式n):
语句体n
else:
语句体n+1
执行流程:
看条件表达式1的返回值:
true:执行语句体1;
false:看条件表达式2的返回值:
true:执行语句体2;
false:...
所有的都不匹配,执行else里面的语句体n+1。
肯定有一个被执行。
(2)if语句的格式注意事项:
A:条件表达式无论是简单还是复杂,结果肯定是boolean类型。
B:每种if语句其实都是一个整体,有一条语句执行,其他的将不再执行。
(3)案例:
A:判断两个数据是否相等。
B:获取两个数据中的最大值。
C:判断三个数据中的最大值。(if语句的嵌套)
判断一个数是否大于20。
第一种格式
判断两个数中的较大的值。
第二种格式
根据月份,判断季节。 判断三个数中的较大的值。
-------------------------------------------------------------------
switch(number) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入的星期日期有问题");
----------------------------
'''
def fun1():
print ('周一') def fun2():
print('周二') def fun3():
print('周三')
dic={'1':fun1,'2':fun2,'3':fun3}
dic['3']()
#d[x](arguments)
'''
def add(x,y):
return x+y
def sub(x,y):
return x-y
def mul(x,y):
return x*y
def div(x,y):
return x/y
cal={'+':add,'-':sub,'*':mul,'/':div}
print (cal.get('*')(5,4))
--------------------------------------------------------------
for else循环:
格式:
for 元素变量 in 可迭代对象
---------------------------------
任何有序的序列对象内的元素都可以遍历,比如字符串、列表、元组等可迭代对像。
eg:
>>> a=[1,2,3,4]
>>> for i in a: print i,
1 2 3 4
>>> i
4------------------i保留最后一次赋值结果
加一个遍历字典的例子
------------------------------------------------------------
while else循环
while 条件语句:
直到条件不再满足退出循环,否则反复循环
a = 0
while a<3:
print('yuan')
#continue
a+=1
#break
else:
print ('alex')
------------------------------------------------------------
>>> f=open(r'D:\abc.txt','a')
>>> mes=['good\n','great\n','well\n']
>>> f.writelines(mes)
>>> f.close()
with open(r'D:\abc.txt','a') as f: f.write('?')
>>> with open(r'D:\abc.txt','w') as f:
f.seek(8)
f.write('?')
8
1

浙公网安备 33010602011771号