python基础练习题

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("请输入一个0和1组成的二进制的字符串:")
d = 0
while s:
    d = d * 2 + int(s[0])
    s = s[1:]
print(f"转换成十进制的数为:", d)

输出:

请输入一个0和1组成的二进制的字符串:1101
转换成十进制的数为: 13


2. 将字符串“你好”转换成字节,再将转换字节转成字符串(使用两种方式实现)

vid_bytes = bytes("你好", 'utf-8')
print(vid_bytes, type(vid_bytes))
vid_str = str(b'\xe4\xbd\xa0\xe5\xa5\xbd', 'utf-8')
print(vid_str, type(vid_str))

vid1_bytes = "你好".encode()
print(vid1_bytes, type(vid1_bytes))
vid1_str = b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode()
print(vid1_str, type(vid1_str))

输出:

b'\xe4\xbd\xa0\xe5\xa5\xbd' <class 'bytes'>
你好 <class 'str'>
b'\xe4\xbd\xa0\xe5\xa5\xbd' <class 'bytes'>
你好 <class 'str'>


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

try:                   # 1
    1/0
except ZeroDivisionError:
    print('division by zero')
    
d = {'a': 1, 'b': 2}          # 2
try:
    print(d['c'])
except KeyError:
    print('不存在此键')

list_data = [1, 2, 3]        # 3
try:
    print(list_data[10])
except IndexError:
    print('索引超出范围')

try:                       # 4
    data = 2
    raise ZeroDivisionError
except ZeroDivisionError:
    print('Normal')

try:                          # 5
    data = 1 
    1/0
except ZeroDivisionError:
    print('ZeroDivisionError')
except Exception:
    print('other Exception')
else:
    print('else')
finally:
    print('Finally')

输出:

division by zero
不存在此键
索引超出范围
Normal
ZeroDivisionError
Finally


4.使用字符串格式化方法format打印此列表:
print _ list=[
{"name":"zhangsan","stu_id":"04101041", "score": [90, 80, 100] ,
{"name":"lisi","stu id":"04101042","score":[70, 80,901]},
{"name":"wangwu","stu id":"04101043","score": [76, 90, 80]} 
打印效果如下《学号,姓名,语文成绩,数学成绩,英语成绩, 居中对齐):
stu_ id      name      Chinese     Math      Enqlish
04101041 zhangsan   90             80           100

stu_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"{'name':^20}{'stu_id':^20}{'Chinese':^20}{'Math':^20}{'English':^20}")
for stu in stu_list:
    print("{0[name]:^20}{0[stu_id]:^20}{0[score][0]:^20}{0[score][1]:^20}{0[score][2]:^20}".format(stu))

输出:

     name               stu_id             Chinese               Math              English       
   zhangsan            04101041               90                  80                 100         
     lisi              04101042               70                  80                  90         
    wangwu             04101043               76                  90                  80         


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值