0
点赞
收藏
分享

微信扫一扫

Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)

小铺有酒一两不够 2023-06-11 阅读 53

目录

一、练习题

二、答案解析

(1)正确写法 

① 写法 1

② 写法 2

③ 写法 3

(2)错误写法

① 写法 1



一、练习题



二、答案解析

(1)正确写法 

① 写法 1

# -*- coding: UTF-8 -*-
# 使用utf-8编码

# 一个包含编程语言创始人及其创造的编程语言的列表
programmers = [
  "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
  "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
  "詹姆斯·高斯林(James Gosling), 开发了Java语言",
  "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
  "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
  "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
  "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]

# 定义一个函数,该函数接受一个编程语言创始人的字符串,并解析其姓名和成就
def parse_parts(creator):
    index = creator.find(',')
    name, achievement = creator[0:index], creator[index+1:]
    return name.strip(), achievement.strip()

# 定义一个函数,该函数接受一个编程语言创始人的名字字符串,并解析出其中的中文名和英文名
def parse_name(name):
    index = name.find('(')
    name_cn, name_en = name[0:index], name[index:]
    name_en = name_en[1:len(name_en)-1]
    return name_cn, name_en

# 定义一个函数,该函数接受一个编程语言创始人列表,并遍历其中的每个元素,解析出其中的信息,组成一个新的列表
def parse_creators(creators):
    profiles = []
    for creator in creators:
        name, achievement = parse_parts(creator)
        name_cn, name_en = parse_name(name)
        profiles.append({ 'name_cn': name_cn, 'name_en': name_en, 'achievement': achievement })
    return profiles

# 如果该脚本在当前运行位置执行,则执行以下代码:获取编程语言创始人列表,调用 parse_creators 函数解析该列表,将结果保存在 profiles 中,并打印输出 profiles。
if __name__ == '__main__':
    creators = programmers
    profiles = parse_creators(creators)
    print(profiles)

② 写法 2

# -*- coding: UTF-8 -*-
# 使用utf-8编码

# 一个包含编程语言创始人及其创造的编程语言的列表
programmers = [
  "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
  "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
  "詹姆斯·高斯林(James Gosling), 开发了Java语言",
  "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
  "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
  "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
  "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]

# 定义一个函数,该函数接受一个编程语言创始人的字符串,并解析其姓名和成就
def parse_parts(creator):
    index = creator.find(',')
    name, achievement = creator[0:index], creator[index+1:]
    return name.strip(), achievement.strip()

# 定义一个函数,该函数接受一个编程语言创始人的名字字符串,并解析出其中的中文名和英文名
def parse_name(name):
    index = name.find('(')
    name_cn, name_en = name[0:index], name[index:]
    name_en = name_en[1:len(name_en)-1]
    return name_cn, name_en

# 定义一个函数,该函数接受一个编程语言创始人列表,调用 parse_profile 函数解析每个创始人的信息,并将所有解析出的信息存入新的列表
def parse_profile(creator):
    name, achievement = parse_parts(creator)
    name_cn, name_en = parse_name(name)
    return { 'name_cn': name_cn, 'name_en': name_en, 'achievement': achievement }

def parse_creators(creators):
    profiles = []
    for creator in creators:
        profile = parse_profile(creator)
        profiles.append(profile)
    return profiles

# 如果该脚本在当前运行位置执行,则执行以下代码:获取编程语言创始人列表,调用 parse_creators 函数解析该列表,将结果保存在 profiles 中,并打印输出 profiles。
if __name__ == '__main__':
    creators = programmers
    profiles = parse_creators(creators)
    print(profiles)

③ 写法 3

# -*- coding: UTF-8 -*-
# 定义程序员信息字符串列表 programmers
programmers = [
  "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
  "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
  "詹姆斯·高斯林(James Gosling), 开发了Java语言",
  "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
  "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
  "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
  "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]

# 定义解析英文名和成就字符串的函数 parse_parts()
def parse_parts(creator):
    index = creator.find(',')
    name, achievement = creator[0:index], creator[index+1:]
    return name.strip(), achievement.strip()

# 定义解析中文名和英文名字符串的函数 parse_name()
def parse_name(name):
    index = name.find('(')
    name_cn, name_en = name[0:index], name[index:]
    name_en = name_en[1:len(name_en)-1]
    return name_cn, name_en

# 定义解析单个程序员字符串的函数 parse_profile()
def parse_profile(creator):
    name, achievement = parse_parts(creator)
    name_cn, name_en = parse_name(name)
    return { 'name_cn': name_cn, 'name_en': name_en, 'achievement': achievement }

# 定义对程序员信息列表进行解析的函数 parse_creators()
# 使用列表推导式的方式,将每个程序员字符串解析为字典并返回字典列表
def parse_creators(creators):
    return [ parse_profile(creator) for  creator in creators]

if __name__ == '__main__':
    # 调用 parse_creators() 函数,获取所有程序员信息对应的字典列表
    creators = programmers
    profiles = parse_creators(creators)
    # 输出字典列表
    print(profiles)

(2)错误写法

① 写法 1

# 错误代码
# -*- coding: UTF-8 -*-

# 定义包含程序员信息的字符串列表 programmers
programmers = [
    "约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
    "阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
    "詹姆斯·高斯林(James Gosling), 开发了Java语言",
    "安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
    "丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
    "比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
    "吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]

# 定义解析英文名和成就字符串的函数 parse_parts()
def parse_parts(creator):
    index = creator.find(',')
    name, achievement = creator[0:index], creator[index+1:]
    return name.strip(), achievement.strip()

# 定义解析中文名和英文名字符串的函数 parse_name()
def parse_name(name):
    index = name.find('(')
    name_cn, name_en = name[0:index], name[index:]
    name_en = name_en[1:len(name_en)-1]
    return name_cn, name_en

# 定义对程序员信息列表进行解析的函数 parse_creators()
def parse_creators(creators):
    profiles = []
    i = 0
    # 使用 while 循环逐个遍历程序员信息字符串
    while i<len(creators):
        creator = creators[i]
        # 解析英文名和成就
        name, achievement = parse_parts(creator)
        # 解析中文名和英文名
        name_cn, name_en = parse_name(name)
        # 根据中文名、英文名和成就,生成一个包含这些信息的字典,并将其添加到列表 profiles 中
        # 这里就是唯一一行错误语句,中英文用了同个变量名 name
        profiles.append({ 'name_cn': name, 'name_en': name, 'achievement': achievement })
        i+=1
    return profiles

if __name__ == '__main__':
    # 对包含程序员信息的字符串列表进行解析
    creators = programmers
    profiles = parse_creators(creators)
    # 输出所有程序员信息对应的字典列表
    print(profiles)

举报

相关推荐

0 条评论