美文网首页
#python入门2#条件,循环,dict,set

#python入门2#条件,循环,dict,set

作者: MORESIR | 来源:发表于2016-11-28 11:15 被阅读47次

    条件if else

    age = 20
    if age > 18:
            print('your age is :', age)
            print('adult')
    

    根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。

    结合使用input()获取用户输入

    age = input('请输入年龄:')
    age = int(age)
    if age > 18:
            print('your age is :', age)
            print('adult')
    

    ** 注意:因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:**

    • 完整的if else结构
      if <条件判断1>:
      <执行1>
      elif <条件判断2>:
      <执行2>
      elif <条件判断3>:
      <执行3>
      else:
      <执行4>

    if判断条件还可以简写,比如写:

    if x:
        print('True')
    只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
    

    循环

    • for ... in
    names = ['Michael', 'Bob', 'Tracy']
    for name in names: 
          print(name)
    

    for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句

    Python提供一个range()函数生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:

    >>> list(range(5))
    [0,1,2,3,4]
    

    要计算1-100的整数之和

    sum = 0 
    for x in range(101):
       sum = sum + x
    print(sum)
    
    • while循环
    sum = 0
    n = 99
    while n > 0: 
        sum = sum + n 
        n = n - 2
    print(sum)
    
    • break语句可以提前退出循环
    • continue语句,跳过当前的这次循环,直接开始下一次循环
    n = 0
    while n < 10:
         n = n + 1 
        if n % 2 == 0: # 如果n是偶数,执行continue语句 
            continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 
        print(n)
    

    dict:

    dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度

    d={'michael' : 95, 'bob' : 75, 'tracy' :85}
    print(d['michael'])    // 95
    
    • 判断key是否存在的方法:
      1. in

      >>>'Thomas' in d // False

      1. 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

      >>>d.get('Thomas') // none
      >>>d.get('Thomas', -1) // -1
      注意:返回None的时候Python的交互式命令行不显示结果。

    要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

      >>> d.pop('bob')
      75
      >>> d
      {'michael' : 95, 'tracy' :85}
    
    • 和list比较,dict有以下几个特点:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。

    • 而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。

    • dict的key必须是不可变对象
      在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

    set

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

    要创建一个set,需要提供一个list作为输入集合

      >>> s = set([1,2,3])
      >>> s
      {1,2,3}
    注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。
    重复元素在set中自动被过滤:
    
    • 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
    • 通过remove(key)方法可以删除元素
      >>> s.add(4)
      >>> s
      {1,2,3,4}
      >>>s.remove(3)
      >>>s
      {1,2,4}
      set可以看成数学意义上的无序和无重复元素的集合
    
    • set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”
    • 对于可变对象,比如list,对list进行操作,list内部的内容是会变化的
      >>> a = ['c', 'b', 'a']
      >>> a.sort()
      >>> a
      ['a', 'b', 'c']
    
    • 而对于不可变对象,比如str,对str操作是不会改变原str的内容
      >>> a = 'abc'
      >>> a.replace('a', 'A') 
      'Abc'
      >>> a
      'abc'
    

    对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。


    学习来源于廖雪峰教程

    相关文章

      网友评论

          本文标题:#python入门2#条件,循环,dict,set

          本文链接:https://www.haomeiwen.com/subject/cbyouttx.html