import sys ip = "172.38.56.2" # 得到IP地址 list1 = ip.???('.') # 指定分隔符对字符串进行切片 list2 = [] # 空列表 for num in list1: num = bin() # 将切分后的数据转换成数值类型并转换为二进制 num = num[2:] # 去掉二进制结果中前缀 list2.append(???) # 长度为8 ,不足补0,往空列表追加新元素 str = ''.join(list2) # 连接列表中所有元素,形成新的字符串 print("转换成二进制结果为:",str) # 打印字符串,即最后的32位二进制IP地址
时间: 2024-01-16 09:02:45 浏览: 107
这段代码中需要填写的部分为:
- list1 = ip.split('.') # 使用字符串的 split 方法进行切片
- num = bin(int(num))[2:].zfill(8) # 将数值类型转换为二进制并补齐 8 位零
完整代码如下:
```python
import sys
ip = "172.38.56.2"
list1 = ip.split('.')
list2 = []
for num in list1:
num = bin(int(num))[2:].zfill(8)
list2.append(num)
str = ''.join(list2)
print("转换成二进制结果为:", str)
```
相关问题
import sys ip = "172.38.56.2" # 得到IP地址 list1 = ip.???('.') # 指定分隔符对字符串进行切片 list2 = [] # 空列表 for num in list1: num = ??? # 将切分后的数据转换成数值类型并转换为二进制 num = num[2:] # 去掉二进制结果中前缀 list2.append(???) # 长度为8 ,不足补0,往空列表追加新元素 str = ''.join(list2) # 连接列表中所有元素,形成新的字符串 print("转换成二进制结果为:",???) # 打印字符串,即最后的32位二进制IP地址
好的,下面是补全后的代码:
```python
import sys
ip = "172.38.56.2" # 得到IP地址
list1 = ip.split('.') # 指定分隔符对字符串进行切片
list2 = [] # 空列表
for num in list1:
num = int(num) # 将切分后的数据转换成数值类型并转换为二进制
num = bin(num)[2:] # 去掉二进制结果中前缀
num = num.rjust(8, '0') # 长度为8 ,不足补0,往空列表追加新元素
list2.append(num)
str = ''.join(list2) # 连接列表中所有元素,形成新的字符串
print("转换成二进制结果为:", str) # 打印字符串,即最后的32位二进制IP地址
```
这段代码的作用是将一个IPv4地址转换成32位的二进制地址,其中通过 `split()` 方法将IP地址按照“.”分隔符进行切片,然后将每个子段数值转换成二进制并填充到8位,最后将所有的二进制子段拼接成一个32位的二进制字符串。
文件smartphone.txt存放着某些公司手机年销量数据,每行为每家公司若干年销量(百万),数据间的分隔符为制表符。 打开文件请注明文件编码格式:with open("smartPhone.txt",encoding="gbk") as f: 编写函数isBigGrowth(L,rate),形参L为一组含有数值型数据的列表(某公司各年份的销量),rate为年增长率,判断并返回是否年销量快速增长:若每年销量增长率都超过给定的rate,则为True,否则为False。 主程序读取smartphone.txt内的数据,将每行数据中的年销量转为数值型数据,利用函数isBigGrowth(L,rate)计算并屏幕输出各公司年销量是否快速增长的情况(本题设年销量增长率均超过30%为快速增长),各数据间以制表符相隔。 程序运行结果如下: 手机公司 是否快速增长? Samsung 否 Apple 否 Huawei 否 OPPO 快速 Vivo 快速 ZTE 否 LG 否 Lenovo 否 Xiaomi 否 smartphone.txt内容如下: 公司 2014年 2015年 2016年 2017年 Samsung 311 322.9 310.3 318.7 Apple 192.9 231.6 215.2 15.8 Huawei 73.6 104.8 139.1 153.1 OPPO 29.9 50.1 92.9 121.1 Vivo 19.5 40.5 74.3 100.7 ZTE 43.8 56.2 60.1 44.9 LG 59.2 59.7 55.1 55.9 Lenovo 70.1 74.1 50.7 49.7 Xiaomi 61.1 70.7 61.5 96.1
代码如下:
```python
def isBigGrowth(L, rate):
for i in range(1, len(L)):
if (L[i] - L[i-1]) / L[i-1] < rate:
return False
return True
with open("smartPhone.txt", encoding="gbk") as f:
data = f.readlines()[1:] # 跳过第一行的表头
print("手机公司\t是否快速增长?")
for line in data:
line = line.strip().split("\t")
company = line[0]
sales = [float(x) for x in line[1:]]
if isBigGrowth(sales, 0.3):
print(f"{company}\t快速")
else:
print(f"{company}\t否")
```
运行结果:
```
手机公司 是否快速增长?
Samsung 否
Apple 否
Huawei 否
OPPO 快速
Vivo 快速
ZTE 否
LG 否
Lenovo 否
Xiaomi 否
```
阅读全文