纸上得来终觉浅,还是要去多练习
1.list[0,1,2,3,4,5],索引为偶数的返回值产生一个新的列表
b=[]
a= [0,1,2,3,4,5]
for i in range(6):
if i %2 ==0:
b.append(a[i]*2)
print(b)
[0, 4, 8]
b=[] #将原列表值为偶数生成新的列表
a= [0,1,2,3,4,5]
for i in a:
if i%2 ==0:
b.append(i)
print(b)
[0, 2, 4]
2.有5个数字0,1,2,3,4能组成多少个互不相同的且无重复数字的三位数,各是多少?
num_list =[]
for i in range(1,5): #如题目有0,第一位不能为0
for j in range(5):
for k in range(5):
if (i !=j) and (j !=k) and (k !=i):
ijk = i *100 + j *10 + k
num_list.append(ijk)
print("所有的不重复数字为:\n%s" %num_list) #只打印最后一个
print("\n一共有%d个不重复三位数" %len(num_list))
所有的不重复数字为:
[102, 103, 104, 120, 123, 124, 130, 132, 134, 140, 142, 143, 201, 203, 204, 210, 213, 214, 230, 231, 234, 240, 241, 243, 301, 302, 304, 310, 312, 314, 320, 321, 324, 340, 341, 342, 401, 402, 403, 410, 412, 413, 420, 421, 423, 430, 431, 432]
一共有48个不重复三位数
3.输入N个整数,把这N个数从大到小输出
# 错误示范:没有考虑输入不是整数的情况
num_list = []
while True:
inmsg = input("输入一个整数:")
if inmsg == 'Q' or inmsg == 'q':
num_list.sort()
print(num_list)
elif isinstance(eval(inmsg),int):
num_list.append(eval(inmsg))
输入一个整数:1
输入一个整数:2
输入一个整数:5
输入一个整数:w
-----------------------------NameError ()NameError: name 'w' is not defined
这里才是正确示范
num_list = []
i =1
while True:
inmsg = input("请输入第%d个整数,输入q结束输入开始排序:" %i)
if inmsg.isdigit():
i += 1
inmsg = eval(inmsg)
num_list.append(inmsg)
elif inmsg == "q" or inmsg == "Q" :
num_list.sort()
print("一共%d个整数排序结果如下:\n"%len(num_list) )
print(num_list)
resatrt = input("是否继续加入数字排序 Y|N:" )
if resatrt =="Y"or resatrt =="y":
continue
else:
break
else:
print("输入不合法,请输入数字")
# 如果扩展到支持输入整数小数进行排序 有以下问题
# isdigit是全部字符都只能是数字,不能输入小数
# 如果用类型转化会报错 不会执行到 elif type(float(inmsg))== float or type(int(inmsg))== int
# 看同样的问题有人说可以用try except 执行,以后学到了再回来看这个题
# 下次扩展到支持重新加入或者继续加入数字进行排序
#--------以下是某人写的版本正则支持输入小数--------
import re
num_list = []
while True:
inmsg = input("输入一个整数:")
matchObj = re.match(r'(^[1-9]([0-9]+)?(\.[0-9])?$)|(^(0)$)|(^[0-9]\.[0-9]([0-9])?$)', inmsg, re.M|re.I)
if inmsg == 'Q' or inmsg == 'q':
num_list.sort()
print(num_list)
elif matchObj:
num_list.append(eval(inmsg))
else:
print("格式错误")
请输入第1个整数,输入q结束输入开始排序:433
请输入第2个整数,输入q结束输入开始排序:1
请输入第3个整数,输入q结束输入开始排序:q
一共2个整数排序结果如下:
[1, 433]
是否继续加入数字排序 Y|N:y
请输入第3个整数,输入q结束输入开始排序:53
请输入第4个整数,输入q结束输入开始排序:879
请输入第5个整数,输入q结束输入开始排序:q
一共4个整数排序结果如下:
[1, 53, 433, 879]
是否继续加入数字排序 Y|N:n
5.暂停一秒输入,并格式化当前时间(time的sleep函数)
import time
print (time.strftime(' %A %Y-%m-%d %H:%M:%S',time.localtime(time.time())))
time.sleep(1)
print (time.strftime(' %A %Y-%m-%d %H:%M:%S',time.localtime(time.time())))
time.sleep(1)
print (time.strftime(' %A %Y-%m-%d %H:%M:%S',time.localtime(time.time())))
Tuesday 2019-02-19 18:55:09
Tuesday 2019-02-19 18:55:10
Tuesday 2019-02-19 18:55:11
6.打印出1000以内的水仙花数,例如153=1的三次方+5的三次方+3的三次方
# 方法一
num_list =[]
for h in range(10,1000):
if h == (h//100)**3+(h//10%10)**3+(h%10)**3: #分别取到这个数的三个数字
num_list.append(h)
print("水仙花数为:%s"%num_list)
# 方法二
num_list =[]
for i in range(1,10):
for j in range(10):
for k in range(10):
if i*100+j*10+k == i**3+j**3+k**3:
num_list.append(i*100+j*10+k)
print("水仙花数为:%s"%num_list)
水仙花数为:[153, 370, 371, 407]
水仙花数为:[153, 370, 371, 407]
7.统计输入字符的英文字母,空格,数字和其他字符的个数
msg = input("输入信息计算字符数:")
ct_num = 0 #计算数字
ct_alp = 0 #计算字母
ct_spa = 0 #空格
ct_else = 0 #特殊字符
for i in msg:
if i.isdigit():
ct_num += 1
elif i.isalpha():
ct_alp += 1
elif i.isspace():
ct_spa += 1
else:
ct_else += 1
print("\n字符总长度%d\n number = %d\n letter = %d\n space = %d\n else = %d"%(len(msg),ct_num,ct_alp,ct_spa,ct_else))
输入信息计算字符数:\n字符总长度%d\n number = %d\n letter = %d\
字符总长度38
number = 0
letter = 23
space = 6
else = 9
未完待续
领取专属 10元无门槛券
私享最新 技术干货