1.有变量name="--aleX leNb---",name前有2个“-”号,name后有3个“-”号。 移除name两边的“-”号,可使用表达式____空白1____; 统计name变量中字母“l”出现的次数,可使用表达式____空白2____; 从name中找到'N'对应的索引(如果找不到则返回-1),可使用表达式____空白3____; 从name中找到'N'对应的索引(如果找不到则会抛出异常),可使用表达式____空白4____; 如果想获得name的子串"ale",使用正向序号进行切片,可使用表达式____空白5____; -------------------------------------------------------------------------- 2.有列表lst=['alex', 'wusir', 'eric'] 计算列表的长度,可使用表达式____空白6____; 在列表lst中追加一个元素'seven',使用append方法,则语句为____空白7____; 利用下划线将列表中的所有元素拼接成alex_wusir_eric,使用join方法,则语句为____空白8____; -------------------------------------------------------------------------- 3.程序填空: dic={'k1':'v1', 'k2':'v2', 'k3':[11,22,33]} #循环输出所有的key for k in dic.keys(): print(k) #循环输出所有的value for v in ____空白9____: print(v) #循环输出所有的键-值对 for k,v in ____空白10____: print(k,v)
时间: 2023-08-15 16:45:13 浏览: 169
1.
空白1:name.strip('-')
空白2:name.count('l')
空白3:name.find('N')
空白4:name.index('N')
空白5:name[2:5]
2.
空白6:len(lst)
空白7:lst.append('seven')
空白8:'_'.join(lst)
3.
空白9:dic.values()
空白10:dic.items()
相关问题
用C语言实现大整数减法#include <stdio.h> #include <string.h> #define MAX_LEN 1000 // 定义最大长度 int main() { char a[MAX_LEN + 1], b[MAX_LEN + 1]; int ans[MAX_LEN + 1]; // 定义字符串数组 int lena, lenb, lens, flag = 0; // lena为a的长度,lenb为b的长度,lens为结果的长度,flag为标志位 // 输入两个整数 scanf("%s %s", &a, &b); lena = strlen(a); lenb = strlen(b); // 分三种情况 if (lena < lenb || (lena == lenb && strcmp(a, b) < 0)) { char temp[MAX_LEN + 1]; strcpy(temp, a); strcpy(a, b); strcpy(b, temp); flag = 1; } lens = lena > lenb ? lena : lenb; int i = lena - 1, j = lenb - 1, k = lens - 1; int borrow = 0; // 定义借位变量 while (i >= 0 || j >= 0) { int x = i >= 0 ? a[i] - '0' : 0; int y = j >= 0 ? b[j] - '0' : 0; int z = x - y - borrow; if (z < 0) { z += 10; borrow = 1; } else { borrow = 0; } ans[k--] = z + '0'; i--; j--; } // 去除前导零 while (ans[lens - 1] == '0' && lens > 1) { lens--; } // 输出结果 if (flag) { printf("-"); } for (i = 0; i < lens; i++) { printf("%d", ans[i]); } printf("\n"); return 0; }中存在的问题
这段代码实现了大整数减法,但存在以下几个问题:
1. 输入没有进行合法性检查,当输入非数字字符时会导致程序出错。
2. 没有检查输入的数字是否超过了最大长度 MAX_LEN,可能会导致程序出错。
3. 字符串数组 ans 没有初始化,可能会导致输出错误结果。
4. 在比较两个字符串大小时使用了 strcmp 函数,效率较低,可以使用逐位比较来实现。
5. 输出结果时使用了字符数组 ans,但最终结果可能需要超过 MAX_LEN 个数字字符,可能会导致输出错误结果。可以使用动态内存分配来解决这个问题。
a,b=input().split() sum=0 lena=len(a) lenb=len(b) for x in range(lena) : sum+=int(a[lena-1-x])*pow(2,x) for x in range(lenb) : sum+=int(b[lenb-1-x])*pow(2,x) print(bin(sum)[2:])
这段代码是一个将输入的两个二进制数相加并输出结果的程序。代码具体解释如下:
- 首先通过 input().split() 从标准输入中读取两个二进制数 a 和 b。
- 然后定义一个变量 sum 并初始化为 0,用于存储两个二进制数相加后的十进制结果。
- 接下来分别计算两个二进制数的长度 lena 和 lenb。
- 然后通过 for 循环遍历每个二进制数的每一位,将其转换为十进制并加到 sum 变量中。具体实现是通过 pow(2,x) 计算 2 的 x 次方,然后乘以对应二进制位的值。
- 最后将 sum 转换为二进制字符串并输出。
需要注意的是,在第 1 行代码中应该加上一个等号,即应该为 a,b = input().split()。
阅读全文