python习题 您所在的位置:网站首页 python将字符串转成列表 python习题

python习题

2023-05-05 12:21| 来源: 网络整理| 查看: 265

1.输入:请输入一个0和1组成的二进制的字符串: 1101 把它转换成10进制 输出:13 解题思想:使用while 循环,每次从二进制字符串中取出第一位字符,使用 int() 函数将当前位的字符 '0' 或 '1' 转换为整数,然后将其乘以2并加上上一次的结果。最后得到的 d 就是转换后的十进制数字。

s = input("请输入一个由1和0组成二进制字符串:") d = 0 while s: d = d * 2 + int(s[0]) s = s[1:] print(f"转换成十进制的数:{d}") 复制代码

输出: image.png 2.将字符串"你好"转换成字节,再将转换字节转成字符串(使用两种方式实现)

# 方法1:使用encode编码,使用decode解码 str_data = "你好" str_data1 = str_data.encode("GBK") str_data2 = str_data1.decode("GBK") print("原字符串:", str_data) print("转换成字节后:", str_data1) print("再转回字符串后:", str_data2) # 方法2: str_data = "你好" str_data1 = bytes(str_data, "GBK") str_data2 = str(str_data1, "GBK") print("原字符串:", str_data) print("转换成字节后:", str_data1) print("再转回字符串后:", str_data2) 复制代码

输出: image.png 3.异常处理: 遇到分母为0异常,执行打印异常信息: Division by zero 遇到字典元素键异常,执行为打印异常信息,不存在此键遇到序列索引异常,执行打印:索引超出范围 若没有遇到异常,打印: Normal 无论异常或正常,打印: Einallv 注意:需要模拟出异常,并验证异常处理是否能完成上面提到的情况

try: # 模拟分母为0异常 1 / 0 # 模拟键值异常 # I= [1, 2, 3] # value = I[4] # 模拟字典元素键异常 d = {"key": "value"} value = d["nonexistent_key"] except ZeroDivisionError: print("Division by zero") except KeyError: print("Keys does not exits") except IndexError: print("Index out of range") else: print("Normal") finally: print("Finally") 复制代码

输出:

模拟分母为0异常image.png 模拟序列索引异常image.png 模拟字典元素异常image.png 遇到没有异常image.png

4.题目: image.png 解题思想:我们首先定义了一个列表,其中包含了三个字典,每个字典代表一个学生的信息。然后,我们使用print函数打印了表头,使用format方法来控制输出格式。接下来,我们使用一个循环遍历学生列表,对于每个学生,我们从字典中提取姓名、学号、分数等信息,并使用format方法来打印这些信息,每个学生的信息都单独占据一行,并且居中对齐。

# 方法1使用format输出: print_list = [ {"name": "zhangsan", "stu_id": "04101041", "score": [90, 80, 100]}, {"name": "lisi", "stu_id": "04101042", "score": [70, 80, 90]}, {"name": "wangwu", "stu_id": "04101043", "score": [76, 90, 80]} ] # 打印表头 print("{:^10s}{:^10s}{:^10s}{:^10s}{:^10s}".format("stu id", "name", "Chinese", "Math", "English")) # 遍历列表,逐个输出每个学生的信息 for i in print_list: name = i["name"] stu_id = i["stu_id"] scores = i["score"] chinese_score = scores[0] math_score = scores[1] english_score = scores[2] # 打印每个学生的信息 print("{:^10s}{:^10s}{:^10d}{:^10d}{:^10d}".format(stu_id, name, chinese_score, math_score, english_score)) 复制代码 # 方法2: print_list = [ {"name": "zhangsan", "stu id": "04101041", "score": [90, 80, 100]}, {"name": "lisi", "stu id": "04101042", "score": [70, 80, 90]}, {"name": "wangwu", "stu id": "04101043", "score": [76, 90, 80]} ] # 打印表头 print(f"{'stu id':^10s}{'name':^10s}{'Chinese':^10s}{'Math':^10s}{'English':^10s}") # 遍历列表,逐个输出每个学生的信息 for student in print_list: name = student["name"] stu_id = student["stu id"] chinese_score, math_score, english_score = student["score"] # 打印每个学生的信息 print(f"{stu_id:^10s}{name:^10s}{chinese_score:^10d}{math_score:^10d}{english_score:^10d}") 复制代码

输出:image.png 5.给你一个整数列表:例如:int list = [2,7,11,15],目标为9 要求打印出列表中两个元素相加之后结果等于9的元素以及下标(选做) 解题思想:首先,定义一个整数列表int_list和一个目标值sum_num使用,接下来使用for循环遍历列表中的每个元素,并计算目标值和当前元素之间的差值。如果差值在列表中,则说明找到了两个元素相加等于目标值的情况,打印出这两个元素的值和下标即可。其中,使用enumerate函数获取当前元素的下标i,使用index方法获取差值

int_list = [2, 7, 11, 15] sum_num = 9 # 遍历列表中的每个元素 for i, num1 in enumerate(int_list): # 计算差值 num2 = sum_num - num1 # 判断差值是否在列表中 if num2 in int_list: # 如果在列表中,打印出相加等于目标值的两个元素的值和下标 j = int_list.index(num2) print("第一个元素:{},下标:{},第二个元素:{},下标:{},和为:{}".format(num1, i, num2, j, num1 + num2)) 复制代码

输出: image.png



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有