飞道的博客

python学习笔记(三)

406人阅读  评论(0)

高级变量类型

列表,元组,字典,字符串,公共方法,变量高级

元组

●Tuple (元组)与列表类似,不同之处在于元组的元素不能修改
  。元组表示多个元素组成的序列
  。元组在Python开发中,有特定的应用场景
●用于存储一串信息,数据之间使用,分隔
●元组用()定义
●元组的索引从0开始

元组可以存储不同类型的数据

。索引就是数据在元组中的位置编号

元组的应用

●尽管可以使用for in遍历元组

●但是在开发中,更多的应用场景是:函数的参数和返回值,一个函数可以接收任意多个参数,或者或者 一次返回多个数据

格式字符串,格式化字符串后面的()本质上就是一个元组

让列表不可以被修改,以保护数据安全


  
  1. info_tuple = ( "zhangsan", 18, 1.76)
  2. print( type(info_tuple))
  3. # 输出元组索引数据
  4. print(info_tuple[ 0])
  5. # 定义空元组
  6. empty_tuple = ()
  7. print( type(empty_tuple))
  8. # 元组中只包含一个元素时,只需要在元素后面加逗号
  9. info_tuple1 = ( 4,)
  10. print(info_tuple1)
  11. # 元组取值和取索引
  12. print(info_tuple[ 1])
  13. print(info_tuple.index( "zhangsan"))
  14. # 元组统计计数
  15. print(info_tuple.count( "zhangsan"))
  16. # 元组总数统计
  17. print( len(info_tuple))
  18. # 元组的循环遍历
  19. for my_info in info_tuple:
  20. # 使用格式字符串拼接info不方便,因为数据类型不同
  21. print(my_info)
  22. # 格式化字符串和元组,格式化字符串后面的括号本质上就是元组
  23. print( "%s 的年龄是 %d岁,身高是 %.2f米" % ( "zhangsan", 18, 1.76))
  24. print( "%s 的年龄是 %d岁,身高是 %.2f米" % info_tuple)
  25. # 元组和列表的转换
  26. num_list = [ 1, 2, 3, 4]
  27. print( type(num_list))
  28. # 把列表转换为不能被修改的元组
  29. num_puple = tuple(num_list)
  30. print(( type(num_puple)))
  31. # 把不能被修改的元组转换为可以修改的列表
  32. num2_list = list(num_puple)

字典

●( dictionary (字典) 是除列表以外Python 之中最灵活的数据类型

●字典同样可以用来存储多个数据,通常用于存储描述一个物体的相关信息

●和列表的区别

列表是有序的对象集合,字典是无序的对象集合

●字典用{}定义

●字典使用键值对存储数据,键值对之间使用分隔

。键key是索引

。值value是数据

。键和值之间使用分隔

。键必须是唯一的

。值可以取任何数据类型,但键只能使用字符串、数字或元组

 字典和列表应用

。使用多个键值对,存储描述一个物体的相关信息--描述更复杂的数据信息

。将多个字典放在一个列表中,再进行遍历,在循环体内部针对每一个字典进行相同的处理
 


  
  1. # 字典是无序的,输出的和定义的顺序可能不一样
  2. xiaoming = { "name": "小明",
  3. "age": 18,
  4. "gender": True,
  5. "height": 1.75}
  6. print(xiaoming)
  7. # 字典取值,字典无序,索引用key
  8. print(xiaoming[ "name"])
  9. print(xiaoming.get( "name"))
  10. # 增加/修改
  11. xiaoming[ "weight"] = 67
  12. xiaoming[ "name"] = "大明"
  13. xiaoming.setdefault( "lover", "小红")
  14. # key 存在,不会修改,key不存在,新建键值对
  15. print(xiaoming)
  16. # 删除,索引是key
  17. xiaoming.pop( "weight")
  18. del xiaoming[ "height"]
  19. # pop方法删除,key会报错,del方法删除键值对,key不存在不会报错
  20. # xiaoming.popitem()随机删除一个键值对
  21. print(xiaoming)
  22. # 统计键值对数量
  23. print( len(xiaoming))
  24. # 合并字典,但是如果被合并的字典中有已存在的键值对会覆盖已有的
  25. xiaoming1 = { "weight": 65, "age": 20}
  26. xiaoming.update(xiaoming1)
  27. print(xiaoming)
  28. # 清空字典
  29. # xiaoming.clear()
  30. print(xiaoming)
  31. daming = { "name": "小明",
  32. "age": 18}
  33. # 循环遍历
  34. # k是每次循环中,获得到的键值对key
  35. for k in daming:
  36. print( "%s - %s" % (k, daming[k]))
  37. # 字典和列表应用
  38. # 使用多个键值对描述一个物体的相关信息,将多个字典放在一个列表里面进行遍历
  39. card_list = [
  40. { "name": "张三",
  41. "qq": "123",
  42. "phone": "111"},
  43. { "name": "李四",
  44. "qq": "12345",
  45. "phone": "222"},
  46. ]
  47. for card_info in card_list:
  48. print(card_info)

字符串

●字符串就是一串字符,是编程语言中表示文本的数据类型

●在Python中可以使用一对双引号“”或者一对单引号‘’定义一个字符串

。虽然可以使用\"或者\'做字符串的转义,但是在实际开发中:

          ■如果字符串内部需要使用,可以使用'定义字符串

          ■如果字符串内部需要使用',可以使用定义字符串

●可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始

●也可以使用for 循环遍历字符串中每一一个字符
大多数使用双引号定义字符串

 字符串的各种类型


  
  1. str = " \t\n\r"
  2. print( str.isspace())
  3. 结果: True

注意:isspace不仅能判断是否只包含空格,还可以判断是否有空白字符,比如:\n,\t,\r


  
  1. # 判断是否只包含数字
  2. # 后两个方法可以判断unicode字符串,isnumeric还可以判断中文数字
  3. str3 = "\u00b2"
  4. print(str3.isdecimal())
  5. print(str3.isdigit())
  6. print(str3.isnumeric())
  7. 结果:
  8. False
  9. True
  10. True

 

 


  
  1. str4 = "hello python"
  2. # 判断是否以指定字符串开始
  3. print(str4.startswith( "hello"))
  4. # 判断是否以指定字符串结束
  5. print(str4.endswith( "python"))
  6. # 查找指定字符串在母字符串中的位置,
  7. # index方法同样可以查找指定字符串在母字符串中的索引,但是如果指定字符串不存在会报错,
  8. # find方法查找子字符串在母字符串中的位置,如果不存在会返回-1
  9. print(str4.find( "llo"))
  10. print(str4.find( "aaa"))
  11. # 替换字符串
  12. # replace("旧字符串","新字符串")
  13. # replce方法会返回一个新的字符串,但是不会修改原有字符串
  14. print(str4.replace( "python", "world"))
  15. print(str4)
  16. 结果:
  17. True
  18. True
  19. 2
  20. - 1
  21. hello world
  22. hello python

 


  
  1. # 顺序并居中对齐输出以下内容
  2. str = [ "\t登鹳雀楼",
  3. "白日依山尽",
  4. "黄河入海流",
  5. "欲穷千里目",
  6. "更上一层楼"
  7. ]
  8. for str_poem in str:
  9. # 统一左对齐, 10是宽度,后面的中文空格格式 print( "|%s|" % str_poem.ljust( 10, " "))
  10. # 统一右对齐 print( "|%s|" % str_poem.rjust( 10, " "))
  11. #先使用strip方法去除空白字符,再使用center方法居中输出
  12. print( "|%s|" % str_poem.strip().center( 10, " "))
  13. 结果:
  14. |   登鹳雀楼    |
  15. |  白日依山尽    |
  16. |  黄河入海流    |
  17. |  欲穷千里目    |
  18. |  更上一层楼    |

 

 

 

 


  
  1. # 去除所有空白字符
  2. # 再使用“ ”作为分隔符,拼接成一个整齐的字符串
  3. str = "登鹳雀楼\t 白日依山尽 \t \r黄河入海流 \t 欲穷千里目\t \n更上一层楼"
  4. # split分割字符串返回一个列表
  5. str1 = str.split()
  6. print(str1)
  7. result = " ".join(str1)
  8. print(result)
  9. 结果:
  10. [ '登鹳雀楼', '白日依山尽', '黄河入海流', '欲穷千里目', '更上一层楼']
  11. 登鹳雀楼 白日依山尽 黄河入海流 欲穷千里目 更上一层楼

切片

切片方法适用于字符串,列表,字典

切片使用索引值来限定范围,从一个大的字符串中切出小字符串

列表和元组都是有序的集合,都能够通过索引值来获得数据

字典是一个无序的集合,使用键值对保存数据

字符串[开始索引:结束索引:步长]

字符串的切片

注意:指定区间是左闭右开


  
  1. # 截取2-5位置字符串,
  2. # 截取2-末尾的字符串
  3. # 截取开始到5位置的字符串
  4. # 截取完整的字符串
  5. # 从开始位置,每个员工字符截取字符串
  6. # 从索引1 开始,每隔一个取一个
  7. # 截取2-末尾-1的字符串
  8. # 截取末尾两个字符
  9. # 字符串的逆序
  10. #将步长设置为-1即为从右向左切
  11. str = "0123456789"
  12. print( str[ 2: 6])
  13. print( str[ 2:])
  14. print( str[: 6])
  15. print( str[:])
  16. print( str[:: 2])
  17. print( str[ 1:: 2])
  18. print( str[ 2:- 1])
  19. print( str[- 2:])
  20. print( str[::- 1])
  21. 结果:
  22. 2345
  23. 23456789
  24. 012345
  25. 0123456789
  26. 02468
  27. 13579
  28. 2345678
  29. 89
  30. 9876543210


转载:https://blog.csdn.net/qq_44832048/article/details/125418126
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场