python中的练习_1

这篇文章包含一系列编程练习,涉及将二进制字符串转换为十进制数字,字符串与字节之间的转换,以及异常处理机制。在异常处理部分,分别模拟了除零错误、字典键错误和序列索引错误,并展示了对应的错误处理代码。最后,练习了使用字符串格式化方法展示列表内容。
摘要由CSDN通过智能技术生成

练习1

补全程序:请补全:待补全位置1,待补全位置2,待补全位置3,实现描述的功能
输入:
请输入一个0和1组成的二进制的字符串: 1101
把它转换成10进制
输出: 13

s = input("请输入一个由1和0组成二进制字符串: ")
d = _补全位置1_
while s:
	d = d + __补全位置2__
	s = s[1:]
print(f"转换成十进制的数为: {__补全位置3__}")

补全后:

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

方法不唯一

练习2

将字符串"你好"转换成字节,再将转换字节转成字符串(使用两种方式实现)
第一种

data_str = "你好"
print(data_str)
bytes = bytes(data_str,'utf-8')
print(bytes)
new_str = str(bytes,encoding='utf-8')
print(new_str)
你好
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好

第二种

data_str = "你好"
print(data_str)
data_bytes = data_str.encode(encoding="utf-8")
print(bytes_data1)
data_str = data_bytes.decode()
print(str_data1)

你好
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好

练习3

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

try:
	# 1 / 0
    # {[1]:2}
    # list = []
    # print(list[2])
except ZeroDivisionError:
    print("Division by zero")
except TypeError:
    print("不存在此键")
except IndexError:
    print("索引超出范围")
else:
    print('Normal')
finally:
    print('Finally')
'''

我们可以在try后模拟异常
分母为0异常

try:
     1 / 0
    # {[1]:2}
    # list = []
    # print(list[2])
except ZeroDivisionError:
    print("Division by zero")
except TypeError:
    print("不存在此键")
except IndexError:
    print("索引超出范围")
else:
    print('Normal')
finally:
    print('Finally')
Division by zero
Finally

字典元素键异常

try:
    # 1 / 0
    {[1]:2}
    # list = []
    # print(list[2])
except ZeroDivisionError:
    print("Division by zero")
except TypeError:
    print("不存在此键")
except IndexError:
    print("索引超出范围")
else:
    print('Normal')
finally:
    print('Finally')
不存在此键
Finally

序列索引异常

try:
    # 1 / 0
    # {[1]:2}
    list = []
    print(list[2])
except ZeroDivisionError:
    print("Division by zero")
except TypeError:
    print("不存在此键")
except IndexError:
    print("索引超出范围")
else:
    print('Normal')
finally:
    print('Finally')

索引超出范围
Finally

若没有遇到异常,打印: Normal

try:
	# 1 / 0
    # {[1]:2}
    # list = []
    # print(list[2])
except ZeroDivisionError:
    print("Division by zero")
except TypeError:
    print("不存在此键")
except IndexError:
    print("索引超出范围")
else:
    print('Normal')
finally:
    print('Finally')
 Normal
 Finally

练习4

使用字符串格式化方法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_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':^10}{'name':^10}{'Chinese':^10}{'Math':^10}{'English':^10}")
for i in print_list:
     print("{0[stu_id]:^10}{0[name]:^10}{0[score][0]:^10}{0[score][1]:^10}{0[score][2]:^10}".format(i))
  stu_id     name    Chinese     Math    English  
 04101041  zhangsan     90        80       100    
 04101042    lisi       70        80        90    
 04101043   wangwu      76        90        80   

练习5

给你一个整数列表:例如:int_list = [2, 7, 11, 15], 目标为 9
要求打印出列表中两个元素相加之后结果等于9的元素以及下标(选做)

int_list = [2, 7, 11, 15]
for i in range(0, len(int_list)):
    for j in range(i+1, len(int_list)):
        if int_list[i] + int_list[j] == 9:
            print("第一个元素:", int_list[i], "第一个元素的下标:", i)
            print("第二个元素:", int_list[j], "第二个元素的下标:", j)
第一个元素: 2 第一个元素的下标: 0
第二个元素: 7 第二个元素的下标: 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值