练习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