Python 实验3 复杂数据类型

该实验旨在巩固Python流程控制语法,同时深入理解并操作字符串、元组、列表和字典等数据类型。实验内容包括:1) 分离字符串中的英文和中文;2) 将十进制IP地址转换为32位二进制;3) 删除第一个字符串中包含在第二个字符串的所有字符;4) 统计字符串中字母的出现次数。通过这些练习,可以提升对Python数据处理的能力。
摘要由CSDN通过智能技术生成

实验目的

  1. 巩固掌握Python流程控制语法;
  2. 掌握字符串、元组、列表、字典等类型特点;
  3. 掌握元素添加、删除、查找等操作

实验内容

完成以下程序编写要求并测试:

1. 已知一个字符串中包含了许多组英文单词和中文词,英文和中文交错排列。现需要编程将中文和英文分开,然后分别输出。

分析:对原字符串的每个字符,利用ord函数检查其编码值,在[0,127]范围内即为英文,否则为中文,虽然字符串是不可变的类型,可以转化为可变类型的列表进行处理。

s=input('please input string:(Both English and Chinese are included)')
temp=list(s)
English=[]
Chinese=[]
for i in temp:
    if ord(i)>=0 and ord(i)<=127:
        English.append(i)
    else:
        Chinese.append(i)
print('English:',''.join(English))
print('chinese:',''.join(Chinese))

运行结果

2. 已知输入一个十进制的IP地址,形如***.***.***.***的字符形式,其中***为0~255之间的整数。现需要编程将IP地址转换为32位二进制形式输出,也就是将***转换为8位二进制数后依次输出,如输入16.255.1.8,输出00010000 11111111 00000001 00001000。

 

s=input('please input a decimal IP address(0-255):')
list_1=s.split('.')#分割ip
list_2=[]
for temp in list_1:
    temp= bin(int(temp))#进制转换(srt->d->0b)
    temp=temp[2:]#去除前面二进制标志(0b)
    list_2.append('{0:>08}'.format(temp))#统一格式
    s1=' '.join(list_2)#使用空格将列表连接成字符串
print('二进制IP为:',s1)

运行结果

3.编写一段程序,可以输入两个字符串,输出从第一个字符串中删除第二个字符串中所有字符的结果。例如,输入“They are student.”和“aeiou”,则删除之后的第一子字符串变成“Thy r stdnts.”。

 

s_1 = input('Please enter the first string:')
s_2 = input('Please enter the second string:')
list_1 = list(s_1)
list_2 = list(s_2)
for i in list_1:
    for j in list_2:
        if i == j:
            list_1.remove(i)
print(''.join(list_1))

运行结果

4. 编写一段程序,用于统计输入字符串中每个字母的出现次数(忽略大小写,如a与A算同一个字母),要求结果以字典类型保存,如{‘a’:3,’b’:1}。

 

s_1 = input('please input a string:').lower()
result= {}
for i in s_1:
    result[i] = s_1.count(i)
print(result)

运行结果

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值