day03 作业
-
实现IP地址转换。
如 10.3.9.12 转换规则为: 10 00001010 3 00000011 9 00001001 12 00001100 再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ? ########### 答案 ############## string = '10.3.9.12'
ipList = string.split(".")
stringStart = ‘’
for i in ipList:
intToBin = bin(int(i)) # 将字符串转换为十进制,再将十进制转换为二进制
binRemove0b = (intToBin[2:]).rjust(8,‘0’) #
stringStart = stringStart + binRemove0b;
print(stringStart)
print("-------------")
stingToInt = int(stringStart)
print(stingToInt)
n = -1
k = 0
ii = 0
len = len(stringStart)
while len > 0:
ii = (int(stringStart[n]) * pow(2, k)) + ii
print("-------",ii)
k = k + 1
len = len - 1
n = n - 1
print(k, “–”,ii)
######### 简便的做法 #########
2. Python2中的xrange和range的区别?
可参考:https://www.cnblogs.com/molson/p/6613094.html
相同点:
1、两者都是函数,都可生成一个数字序列;
2、生成的数字序列都是左闭右开,且都支持切片操作
不同点:
1、range()函数生成的序列是字符串类型的,而xrange() 函数生成的序列是xrange类型的
2、range()函数直接生成一个列表,xrange() 函数生成一个生成器,可以使用list(xrange())将这个生成器转换成为list类型的
3、要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间
###############################
python2中xrange是生成器,生成一个取出一个,节省内存
range是一次性生成,对内存消耗较大
3. 如何实现 `"1,2,3"` 变成 `["1","2","3"]` ?
```python
string = "1,2,3"
string = string.replace(",","")
print(list(string))
- 如何实现
"1,2,3"
变成[1,2,3]
?
string = "1,2,3"
string = string.replace(",", "")
len = len(string)
list1 = []
i = 0
while i < 3:
strToInt = int(string[i])
list1.append(strToInt)
i = i + 1
print(list1)
- 请用三种方法实现字符串反转 name = “晓强半夜三点在被窝玩愤怒的小鸟”(步长、while、for)
# 第一种:
name = "晓强半夜三点在被窝玩愤怒的小鸟"
print(name[::-1])
# 第二种:
length = len(name) - 1
nameList = []
while length >= 0:
nameList.append(name[length])
length = length - 1
result = ''.join(nameList) # Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
print(result)
# 第三种
naList = []
namList = []
length = len(name)
for i in name:
naList.append(i)
print(naList)
while length - 1 >= 0:
namList.append(naList.pop(length - 1))
length = length - 1
naResult = ''.join(namList)
print("----",naResult)
-
写代码,有如下列表,按照要求实现每一个功能。
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] - 列表中追加元素"seven",并输出添加后的列表 - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表 - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表 - 请删除列表中的元素"ritian",并输出删除后的列表 - 请删除列表中的第2个元素,并输出删除元素后的列表 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] l2=[1,"a",3,4,"heart"]
1
li.append("seven")
print(li)
2
li.insert(0,'Tony')
print(li)
3
li.extend(l2)
print(li)
4
# del li[2] # 删除
li.remove('ritian')
print(li)
5
li.pop(2)
7. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如:
```python
0 武沛齐
1 景女神
2 肖大侠
users = ["武沛齐","景女神","肖大侠"]
for value in users:
print(users.index(value),' ',value)
-
写代码,有如下列表,按照要求实现每一个功能。
- 将列表lis中的"k"变成大写,并打印列表。 - 将列表中的数字3变成字符串"100" - 将列表中的字符串"tt"变成数字 101 - 在 "qwe"前面插入字符串:"火车头" lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] lis[2] = lis[2].upper() print(lis) lis[3][2][1] = 100 print(lis) lis[3][2][0] = 101 print(lis) lis[3].insert(0,'火车头') # 划重点 print(lis)
-
写代码实现以下功能
如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: 1,汽车 2,飞机 3,火箭 用户输入索引后,将指定商品的内容拼接打印,如:用户输入1,则打印 您选择的商品是汽车。 googs = ['汽车','飞机','火箭'] inPut = input('请输入商品编号:') for value1 in googs: if googs.index(value1) + 1 == int(inPut): print(value1)
-
查找列表li中的元素,移除每个元素的空格,并找出以"a"开头的元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ["wupeiqi ", "alexC", "AbC ", "seven", " riTiAn", "WuSir", " aqc"] li3 = [] li2 = [] for value2 in li: # 先后顺序很重要 li3.append(li[li.index(value2)].strip()) if li3[li.index(value2)].strip().startswith('a'): li2.append(li3[li.index(value2)].strip()) li[li.index(value2)] = li[li.index(value2)].strip() print(li2) print(li)
-
判断是否可以实现,如果可以请写代码实现。
li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("alex", "barry",), "eric"] - 请将 "WuSir" 修改成 "武沛齐" - 请将 ("alex", "barry",) 修改为 ['日天','日地'] - 请将 88 修改为 87 - 请将 "eric" 删除,然后再在列表第0个索引位置插入 "李杰" li[2] = "武沛齐" print(li) ################## list2 = list(li[3]) # 元组不能修改长度与元素 print(list2) list2[0] = '小天' list2[1] = '小地' li[3] = tuple(list2) print(li) ################## list3 = list(li[1][2]) list3[0] = 89 li[1][2] = tuple(list3) print(list3,'------',li) li.pop() li.insert(0,'理解') # 列表的插入不用赋值 print(li)
-
请将列表中的每个元素通过 “_” 链接起来。
users = ['李少奇','李启航','渣渣辉' print('_'.join(users))
-
请将元组 v1 = (11,22,33) 中的所有元素追加到列表 v2 = [44,55,66] 中。
v1 = (11,22,33)
v2 = [44,55,66]
list4 = list(v1)
v2.extend(list4)
print(v2)
- 请将元组 v1 = (11,22,33,44,55,66,77,88,99) 中的所有偶数索引位置的元素 追加到列表 v2 = [44,55,66] 中。
v1 = (11,22,33,44,55,66,77,88,99)
v2 = [44,55,66]
list5 = list(v1)
for value3 in list5:
if list5.index(value3)%2 == 0:
v2.append(value3)
print(v2)
- 有字符串"k1:1|k2:2 |k3 :2" 处理成如下结构的数据。
[
("k1","1"),
("k2","2"),
("k3","3"),
]
string = "k1:1|k2:2 |k3 :2"
list1 = string.split('|')
list3 = []
print(list1)
for value in list1:
list2 = list1[list1.index(value)].split(":")
list3.append(tuple(list2))
print(list3)
```
13. 输出商品列表,用户输入序号,显示用户选中的商品
```python
商品列表:
goods = [
["电脑",1999],
["鼠标",10],
["游艇",20],
["美女",990],
]
要求:
1:页面显示 序号 + 商品名称 + 商品价格,如:
1 电脑 1999
2 鼠标 10
...
2:用户输入选择的商品序号,然后打印商品名称及商品价格
3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
4:用户输入Q或者q,退出程序。
inpIndex = []
for value5 in goods:
print(goods.index(value5)+1,' ',goods[goods.index(value5)][0],' ', goods[goods.index(value5)][1])
inpIndex.append(goods.index(value5)+1)
while 1:
inpValue = input("请输入商品编号:")
if inpValue.lower() == 'q':
break
elif inpValue.isdecimal():
if int(inpValue) in inpIndex:
for value6 in goods:
if goods.index(value6) + 1 == int(inpValue):
print(goods[goods.index(value6)][0],' ',goods[goods.index(value6)][1])
else:
pass
else:
print("输入有误!")
```
14. 比较 `v1 = (1,)` 和 `v2 = 1` 以及 `v3= (1)` 的区别?
v1是元组
v2是一个变量,值为1
v3是一个变量,值为1
15. 列举你了解的转换为布尔值为False的所有值。
0、''、[]、()、{}、None
16. 实现用户登录程序
```python
- 循环提示用户录入用户名和密码,输入Q或q终止。
- 用户名和密码校验(三次错误机会)。
userNm = 'huahua'
password = '123123'
count = 1
while count <= 3:
inpName = input('请输入用户名:')
if inpName.lower() == 'q':
break
inpPassword = input("请输入密码:")
if inpName == userNm and inpPassword == password:
print('登录成功!')
break
else:
count += 1
if count == 4:
print("今日登录次数已达上限,明天再来试试吧~")
else:
print("用户名或者密码有误,请重新输入!")
-
基于for和range实现 9*9 乘法表.
1*1 2*1 2*2 3*1 3*2 3*3 4*1 4*2 4*3 4*4 5*1 5*2 5*3 5*4 5*5 6*1 6*2 6*3 6*4 6*5 6*6 7*1 7*2 7*3 7*4 7*5 7*6 7*7 8*1 8*2 8*3 8*4 8*5 8*6 8*7 8*8 9*1 9*2 9*3 9*4 9*5 9*6 9*7 9*8 9*9