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

posted @ 2016-04-12 17:40  TINYO  阅读(155)  评论(0)    收藏  举报