Python基础3

列表的嵌套

类似while循环的嵌套 列表也是支持嵌套的
一个列表中的元素又是一个列表,这就是列表的嵌套
例:
schoolNames = [['北京大学', '清华大学'], ['南开大学'], ['天津大学'], ['天津师范大学'], ['山东大学'], [中国海洋大学]]

列表的遍历

遍历:不重复的访问列表中的每一个元素

		list_index = 0
		while list_index < len(schoolNames):
			    print(schoolNames[list_index])
    list_index += 1

for 循环遍历

for item in schoolNames:
    print(item)

遍历嵌套列表
while循环解决列表遍历问题
while循环解决列表遍历问题
outer_index = 0 # 外层循环索引
while outer_index < len(schoolNames):
inner_index = 0
current_list = schoolNames[outer_index] # 当前列表
while inner_index < len(current_list)
print(current_list[inner_index], end='')
inner_index += 1
print()
outer_index += 1

     for循环解决列表遍历问题

for current_list in schoolNames:
    for item in current_list:
        print(item, end='')
    print()
    
    一般对容器进行遍历的时候 使用for循环

    for 循环能否想while一样控制循环次数?

    可以构建一个列表
    range可以生成一个列表
my_list = range(10)
print(list(my_list))


for index in range(10): # 不用index这个值 可以用_代替
	print(index) 

应用: 一个学校 有3个办公室 现有8个老师等待工位的分配 请编写程序:
1)完成随机的分配
2)获取办公室信息(每个办公室的人数 及分别是谁)




import random
# 创建学校
school = [[], [], []]
# 创建老师
teachers = []
# 动态创建老师
for tid in range(1, 9):
	
teacher_name = '老师' + str(tid)
	# 将老师存入列表中
teachers.append(teacher_name)


# 动态给老师们分配办公室
for teacher in teachers:


# 随机确定办公室
office_id = random.randint(0, 2) 
# 将当前的老师插入到随机的办公室中
school[office_id].append(teacher)


# 显示每个办公室老师的名字
for office in school:
    # 打印当前办公室有哪些老师
    for teacher in office:
        print(teacher, end='')
    print('\n'+ ('-' * 30))

应用场景
尽管python的列表中可以存储不同类型的数据 但是在开发中 更多的应用场景是


1 列表存储相同类型的数据
2 通过for循环 在循环体内部 针对列表中的每一项元素 执行相同的操作

my_tuple = (10, 1.1, 'abc')
定义 :
元组用 () 定义
用于存储一串数据 元素之间使用 , 分隔
元组的索引从0开始
元组中只包含一个元素时,需要在元素后面添加逗号






列表中的元素可以修改 元组中的元素禁止修改


元组的操作

序号分类关键字 / 函数 / 方法说明
1查询元组[索引]根据索引取值,索引不存在会报错
  元组.index(数据)根据值查询索引,返回首次出现时的索引,没有查到会报错
  元组.count(数据)数据在元组中出现的次数
  len(列表)元组长度
  if 数据 in 元组:检查元组中是否包含某元素
2遍历for 元素 in 元组:取出元组中的每个元素



元组的使用场景 

作为自动组包的默认类型
info = 10, 20
print(type(info))  # 输出类型为 tuple

# 交换变量的值
a = 10
b = 20
a, b = b, a  # 先自动组包,后自动解包

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

info = ("zhangsan", 18)
print("%s 的年龄是 %d" % info)

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

info = ("zhangsan", 18)
print("%s 的年龄是 %d" % info)

字典

    字典的定义

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

            字典同样可以用来存储多个数据

                通常用于存储描述一个物体的相关信息

            字典用{ }定义

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

            键 key 是索引

            值 value 是数据

            键和值之间用 : 分隔

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

            键必须是唯一的

            字典没有索引 是无需的

# 定义字典
xiaoming = {
    "name": "小明",
    "age": 18,
    "gender": True,
    "height": 1.75}

# 取出元素的值
print(xiaoming["name"])  # 输出: 小明

        字典的常用操作

序号分类关键字 / 函数 / 方法说明
1增加字典[键] = 数据键不存在,会添加键值对;键存在,会修改键值对的值
2删除del 字典[键]删除指定的键值对
  字典.pop(键)删除指定键值对,返回被删除的值
  字典.clear清空字典
3修改字典[键] = 数据键不存在,会添加键值对;键存在,会修改键值对的值
  字典.setdefault(键,数据)键值对不存在,添加键值对;存在则不做处理
  字典.update(字典2)取出字典2的键值对,键值对不存在,添加键值对;存在则修改值
4查询字典[键]根据键取值,键值对不存在会报错
  字典.get(键)根据键取值,键值对不存在不会报错
  字典.keys()可进行遍历,获取所有键
  字典.values()可进行遍历,获取所有值
  字典.items()可进行遍历,获取所有(键,值)
5遍历for key in 字典取出元组中的每个元素的 key

       字典应用场景

# 构建学生信息
class_room = []
class_room.append( {'name': '张三', 'age': 18, 'gender': '男'}  )
class_room.append( {'name': '李四', 'age': 19, 'gender': '女'}  )
class_room.append( {'name': '小花', 'age': 17, 'gender': '男'}  )

# 打印学生信息
for student in class_room:
    # student 什么类型? 字典类型
    print(student['name'], student['age'], student['gender'])

字符串

    字符串的定义

            字符串就是一串字符 是变成语言中表示文本的数据类型
            在python中可以使用一对双引号"" 或者一队单引号来定义一个字符串
            虽然可以使用 \" 或者 \' 作字符的转义 但是在实际开发中
                    如果字符串内部需要使用 "  ,可以使用 ' 定义字符串
                    如果字符串内部需要使用 ' , 可以使用 " 定义字符串
           可以使用索引获取字符串中指定位置的字符 索引计数从0开始
           也可以使用for循环遍历字符串中的每一个字符
                    大多数变成语言都使用""来定义一个字符串
my_str1 = 'hello world!'
my_str2 = "hello world!"

my_str3 = 'hello " world'
print(my_str3)
my_str4 = "hello ' world"
print(my_str4)

my_str5 = 'hello \' world'
print(my_str5)

my_str6 = "hello \" world"
print(my_str6)

# 定义多行字符串
my_str7 = """
    远看泰山黑乎乎,
    上头细来下头粗.
    如把泰山倒过来,
    下头细来上头粗.
"""

print(my_str7)

# 字符串支持索引下标, 可以任意访问某一个位置的字符
print(my_str5[0])

for ch in my_str6:
    print(ch)

        字符串的常用操作

1) 判断
方法说明
string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal()如果 string 只包含数字则返回 True
string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True
string.startswith(str)检查字符串是否是以 str 开头,是则返回 True
string.endswith(str)检查字符串是否是以 str 结束,是则返回 True

2) 查找和替换

方法说明
string.find(str, start=0, end=len(string))检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string))类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string))跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string))类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old))返回一个新字符串,把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次
3) 拆分和链接
方法说明
string.partition(str)返回元组,把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str)类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num)返回列表,以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 '\r', '\t', '\n' 和空格
string.splitlines()返回列表,按照行('\r', '\n', '\r\n')分隔
string1 + string2拼接两个字符串
string.join(seq)返回字符串,以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
4) 大小写转换
方法说明
string.lower()返回新字符串,转换 string 中所有大写字符为小写
string.upper()返回新字符串,转换 string 中的小写字母为大写
5) 文本对齐
方法说明
string.ljust(width)返回新字符串,基于原字符串左对齐,并使用空格填充至长度 width
string.rjust(width)返回新字符串,基于原字符串右对齐,并使用空格填充至长度 width
string.center(width)返回新字符串,基于原字符串居中,并使用空格填充至长度 width
6) 去除空白字符
方法说明
string.lstrip()返回新字符串,截掉 string 左边(开始)的空白字符
string.rstrip()返回新字符串,截掉 string 右边(末尾)的空白字符
string.strip()返回新字符串,截掉 string 左右两边的空白字符

阅读更多
想对作者说点什么? 我来说一句

Python网络编程 第三版

2017年01月13日 3.71MB 下载

Python3基础学习笔记.pdf

2014年08月23日 1000KB 下载

Python编程入门(第3版).pdf

2018年01月31日 27.2MB 下载

Python编程入门 第3版.pdf

2017年04月07日 29.87MB 下载

没有更多推荐了,返回首页

不良信息举报

Python基础3

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭