Python基础

来源:互联网 发布:java连接池配置 编辑:程序博客网 时间:2024/06/06 07:09
目录:
    1.Python数据类型以及字符串与编码
    2.Python列表(list)与元组(tuple)
    3.Python字典(dict)与set
    4.Python循环与条件判断
    
1.Python数据类型以及字符串与编码
    
    1.1)数据类型    

     其实数据类型只要我们学过其他语言到这里也就是轻而易举能理解的,我们只要注意他其中与其它语言不同的地方即可。
    下面主要是说说字符串的转义输出。先看例子:
  1. #简单的转义我们可以通过'和“来区分
  2. print("hello I'm andy")
  3. #如果输出的字符串中既有'也有"我们可以通过\来转义
  4. print("\"hello\" I\'m andy!")
  5. #输出\我们也可以通过\来转义
  6. print("\\")
  7. #同时我们还可以通过r""或者r''来转义字符串,引号内的字符串将默认为不转义输出
  8. print(r"hello I'm andy!")
输出结果:

        print的用法我觉得有编程基础的人都知道怎么回事吧,不过python3的print可以添加多个字符串,比如这样:
  1. print("hello","everyone","my name is Andy!")
结果是每个字符串用空格分割输出。
      
    1.2)编码与python字符串
    编码问题其实我们只要把ASCllUnicodeUTF-8的关系搞清楚就OK了,推荐一下廖雪峰大大的文章:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431664106267f12e9bef7ee14cf6a8776a479bdec9b9000,上面说的非常清楚,小伙伴儿们可以看看。简单总结就是:Ascll是美国编码标准,Unicode是统一标准,而UTF-8则是Unicode的优化编码标准。

接下来我们来看看常用的关于编码的python函数使用,注释都在代码中。
  1. #ord()输出字符的编码
  2. print(ord("B"))
  3. print(ord("国"))
  4. #char()输出编码对应的字符
  5. print(chr(88))
  6. print(chr(20982))
  7. #通过16进制输出中文
  8. print("\u4f60\u771f\u8c03\u76ae")
  9. #str根据不同的编码格式转换成bytes
  10. print("abcd".encode("ascii"))
  11. print("abcd".encode("utf-8"))
  12. #中文不能用ascii编码,理解了3个编码的含义就很容易想明白了
  13. print("你真调皮".encode('utf-8'))
  14. #bytes更具不同的编码格式转换成str
  15. print(b'abcd'.decode("ascii"))
  16. print(b'abcd'.decode("utf-8"))
  17. print(b"\xe4\xbd\xa0\xe7\x9c\x9f\xe8\xb0\x83\xe7\x9a\xae".decode('utf-8'))
输出结果如下:

其实上面都是一些简单的函数使用而已,只要吉吉去敲一遍,就能很好的掌握。也就不过多说了,主要要提的是下面这两行注释:
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
1.第一行是告诉LinuxOS X系统这是一个python的可执行程序,window则不用管
2.第二行是为了告诉Python解析器,用utf-8编码的方式来读取,但是要注意你的py文件保存的格式一定要与这个编码方式相符合,否则就会出现乱码;好像在python3中我们第二行注释可以省略先。

 2.Python列表(list)与元组(tuple)
    2.1)list列表
            一个可变的有序列表,我们可以随意的对list进行增删改查操作,下面是对list的简单增删改查,注释和操作一体,小伙伴可以边敲边看注释理解。
  1. girl_friends=['alice','vivian',"lily","wendy",'cindy']
  2. #打印所有列表项
  3. print(girl_friends)
  4. #通过索引获取对应位置的元素,注意python索引从0开始
  5. print(girl_friends[0])
  6. print(girl_friends[1])
  7. #负数从尾部向前推获取元素,不理解的看输出结果就明白了
  8. print(girl_friends[-2])
  9. #len()获取list长度
  10. print(len(girl_friends))
  11. #添加数据
  12. print(girl_friends)
  13. girl_friends.append("cimi")
  14. print(girl_friends)
  15. girl_friends.insert(1,"jeney")
  16. print(girl_friends)
  17. #删除数据
  18. girl_friends.pop()
  19. print(girl_friends)
  20. girl_friends.pop(1)
  21. print(girl_friends)
  22. #修改数据
  23. girl_friends[0]="jerry"
  24. print(girl_friends)
  25. print("------------------------")
  26. #list嵌套
  27. eat_list=["apple","pear",["potato","carrot","onion"],"banana"]
  28. print(eat_list)
  29. #访问内部list
  30. print(eat_list[2][1])
  31. #list中的元素可以不同类型
  32. diff_list=[1,"str",True,["hello",3]]
  33. print(diff_list)
输出结果与代码顺序一致,结果如下:


注意是python list是用“[]”不是“{}”,因为在Java或者一些语言中数组是使用{}包裹的,所以注意不要搞混了。
 
2.2)元组(tuple)列表
        一个一但初始化就不可更改的有序列表,和list类似只是不可以对元素进行修改删除和增加,当然查询是可以的,查询方式和list一致,看看我们的示例代码和结果。
  1. boy_friends=('andy',"jack","wendy","eason","ason")
  2. print(boy_friends)
  3. #定义空tuple
  4. t=()
  5. print(t)
  6. #定义一个元素的tuple,注意要添加","否则 python将把小括号当做数学公式中的小括号进行计算
  7. one_t=("andy")
  8. one_t1=("andy",)
  9. print(one_t)
  10. print(one_t1)
  11. #tuple与list结合实现可变tuple,原理其实就是tuple指定的list不能变,但是我list中的元素是可变的
  12. tuple_change=("andy",3,["change","like"],"bored")
  13. print(tuple_change)
  14. tuple_change[2][1]="hahahahahahahah"
  15. print(tuple_change)
输出结果:
 

    3.Python字典(dict)与set
        3.1)dict字典
                python的字典是一个以key-value方式存储数据的对照表一样,他通过索引查询数据,就像我们小时候使用的新华词典一样根据字母索引去查找对应的值,所以他相对于list的顺序查找来说他具有很快的查找速度。
    我们来通过简单的示例来学习一下dict的简单操作:
  1. #通过{}定义dict
  2. dict_age={"andy":18,"jack":20,"alice":18}
  3. #通过key获取对应的value
  4. print("andy age =",dict_age["andy"])
  5. #get()获取数据
  6. print("jack age =",dict_age.get("jack"))
  7. #如果获取不存在的数据,不报错
  8. print("sandy age =",dict_age.get("sandy"))
  9. #如果为None,返回默认值
  10. print("sandy age =",dict_age.get("sandy",-1))
  11. #添加数据
  12. print(dict_age)
  13. dict_age["cindy"]=28
  14. print(dict_age)
  15. #判断某个key是否存在
  16. print("andy" in dict_age)
  17. #删除值
  18. print(dict_age)
  19. #删除指定key值
  20. dict_age.pop("cindy")
  21. print(dict_age)
  22. #删除最后一个key-value
  23. dict_age.popitem()
  24. print(dict_age)
结果:

     字典与list的对比:
            1.相对于list字典查找数度快,不会随着数据增加而变慢
            2.相对于list字典占用的内存更大
            
    3.2)set
        一个无序且元素 不可重复的数据集合,通过传入list初始化
  1. #传入list初始化set
  2. set_age=set([20,12,18,88])
  3. set_age_one=set([20,12,18,88,11,39])
  4. str_set=set(["andy","jack"])
  5. #注意输出顺序可以看出set是无序的
  6. print(set_age)
  7. #set添加数据
  8. set_age.add(66)
  9. print(set_age)
  10. print("----------------------")
  11. #update将字符串拆分传入set中
  12. print(str_set)
  13. str_set.update("sandy")
  14. print(str_set)
  15. print("----------------------")
  16. #删除,注意:如果不存在将保存
  17. print(str_set)
  18. str_set.remove("andy")
  19. print(str_set)
  20. str_set.discard("jack")
  21. print(str_set)
  22. #pop删除set第一个元素并返回该值,因为无序所以也就是随机删除一个元素
  23. str_set.pop()
  24. print(str_set)
  25. print("----------------------")
  26. #复制set
  27. copy_set=str_set.copy()
  28. print(copy_set)
  29. print("-----------------------")
  30. #交集
  31. print("交集",set_age&set_age_one)
  32. print("交集",set_age_one.intersection(set_age))
  33. #并集
  34. print("并集",set_age_one|set_age)
  35. print("并集",set_age.union(set_age_one))
  36. #差集
  37. print("差集",set_age_one-set_age)
  38. print("差集",set_age_one.difference(set_age))
  39. #对称差集
  40. print("对称差集",set_age_one^set_age)
  41. print("对称差集",set_age_one.symmetric_difference(set_age))
  42. #成员关系
  43. print("set_age 是 set_age_one的成员:",set_age in set_age_one)
  44. print("set_age 不是 set_age_one的成员:",set_age not in set_age_one)
  45. print("set_age 是 set_age_one的子集:",set_age.issubset(set_age_one))
  46. print("set_age 是 set_age_one的子集:",set_age_one.issuperset(set_age))
输出结果:

     ok,dict和set就简单学习这些,如果还要细致的学习,请自行百度。。。接下来我们学习一下python的基本逻辑语法

4.Python循环与条件判断
           4.1)循环
                循环莫外乎while循环for循环两种,下面我们来练习一下,看看具体的语法是怎样的。
  1. girl_friends=["cindy","alice","anna","wendy","selina"]
  2. #for循环遍历输出girl_friends list
  3. for girl in girl_friends:
  4. print(girl)
  5. print("----------------------------")
  6. #range()函数的使用
  7. print("range(11) :",range(11))
  8. #结果可以看出range(11) 生成了0-10的list
  9. print("range(11) :",list(range(11)))
  10. #for循环遍历计算0-1000的和
  11. sum=0
  12. for n in list(range(1001)):
  13. sum=sum+n
  14. print("sum =",sum)
  15. print("----------------------------")
  16. #while循环遍历输出girl_friends list
  17. n=0
  18. #while n<girl_friends.__len__():
  19. while n<len(girl_friends):
  20. print(girl_friends[n])
  21. n=n+1
  22. print("----------------------------")
  23. # break 和 continue
  24. i=0
  25. while i<len(girl_friends):
  26. if i==3:
  27. print("循环跳出")
  28. break
  29. print(girl_friends[i])
  30. i=i+1
  31. j=0
  32. while j<len(girl_friends):
  33. #注意 j = j + 1放到else以后就会造成死循环
  34. j = j + 1
  35. if j%2==0:
  36. print("不输出")
  37. continue
  38. else:
  39. print(girl_friends[j-1])

    输出结果如下:
 其实还是和其他语言很相似的,只要注意一下语法格式就没问题了。

    4.2)条件判断
            条件循环也比较简单,就是if...elseif...else,我们来看看简单的使用;
  1. age_list=[12,20,40,80,30,44,5,4]
  2. for age in age_list:
  3. if age<=5:
  4. print("你还是个宝宝")
  5. elif age<=20:
  6. print("你未成年")
  7. elif age<=30:
  8. print("你是了比起的青年")
  9. elif age<45:
  10. print("你是油腻腻的中年人")
  11. else:
  12. print("你个老年人")
    输出结果如下:
 

原创粉丝点击