填空
1.表达式[1, 2, 3]*3的值为____________。
2.表达式3 in [1, 2, 3, 4]的值为__________。
表达式[3] in [1, 2, 3, 4]的值为___。
3.使⽤用列表与整数的乘法生成包含10个数字5的列列表,可以写为__________。
4.任意长度的非空列列表中最后⼀一个元素的下标为__________。
5.表达式list(range(1, 10, 3))的值为__________。
表达式list(range(10, 1, -3))的值为__________。
表达式list(range(5))的值为______________。
6.列表的___方法删除首次出现的指定元素,如果列表中不存在要删除的元素,
则抛出异常。
7.假设列表对象a的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片:
a[3:7] = ;
a[:5:2] =;
a[-5:] = ;
a[-7:-2:2] =
a[:5:-1] = ________________
a[8:-9:-1] = ______________
8.已知a = [7,3,4],则a.sort(reverse=True),则a = ________________
9.已知a = [7,3,4,9,10,3,12,3,17],执⾏行行a.pop()后, a=;执⾏行行a.pop(0)
后, a=;执⾏行行a.remove(3)后, a=;执⾏行行del a[:2]后,
a=____
10.已知a = [1,2,3],执⾏行行a.insert(1,4)后, a = _______;执⾏行行a.append(10)后, a
= ________;执⾏行行a.extend([20,30])后, a = ________
答案:
1.[1, 2, 3, 1, 2, 3, 1, 2, 3]
2.True;False
3.[5] * 10
4.-1
5.[1, 4, 7];[10, 7, 4];[0, 1, 2, 3, 4]
6.remove
7.[6, 7, 9, 11];[3, 5, 7];[9, 11, 13, 15, 17];[6, 9, 13];[17, 15, 13, 11];[15, 13, 11, 9, 7, 6, 5]
8.[7, 4, 3]
9.[7, 3, 4, 9, 10, 3, 12, 3]; [3, 4, 9, 10, 3, 12, 3, 17]; [7, 4, 9, 10, 3, 12, 3, 17];[4, 9, 10, 3, 12, 3, 17]
10.[1, 4, 2, 3];[1, 2, 3, 10];[1, 2, 3, 20, 30]
列表
1.不使⽤列表的index函数,⾃⼰写程序查找指定元素。
•要查找的元素从键盘输⼊。
•默认从左向右查找,找到第⼀个元素就停⽌。
答案:
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
num = eval(input("请输入要查找的数字:"))
if num in list1:
for i in range(len(list1)):
if list1[i] == num:
print("该数字的下标为%d" %(i))
else:
print("超出范围")
2.⾃定义⼀个数字列表,求列表中所有偶数元素的和。
答案:
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sumNum = 0
for i in list1:
if i % 2 == 0:
sumNum += i
print(sumNum)
3.B哥去参加⻘年歌⼿⼤奖赛,有10个评委打分,去掉⼀个最⾼⼀个最低,求平均分。
答案:
scoreList = [98, 100, 23, 65, 54, 88, 79, 75, 98, 91]
maxSco = -1
minSco = 999
avgSco = 0
for i in scoreList:
if maxSco < i:
maxSco = i
if minSco > i:
minSco = i
scoreList.remove(maxSco)
scoreList.remove(minSco)
for i in scoreList:
avgSco += i
avgSco /= len(scoreList)
print("平均分为%d" %(avgSco))
4.给定⼀个列表:将列表中指定的某个元素全部删除。
答案:
list1 = [1, 4, 6, 34, 5, 4, 87, 4]
while 4 in list1:
list1.remove(4)
print(list1)
5.输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天(要考虑闰年)。
答案:
year, month, day = eval(input("请输入年月日,以逗号分隔:"))
count = 0
monthDayCountNormal = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
monthDayCountUnormal = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
for i in range(month - 1):
count += monthDayCountUnormal[i]
else:
for i in range(month - 1):
count += monthDayCountNormal[i]
count += day
print("这是%d年的第%d天" %(year, count))
循环
1.猜数字。
从键盘上输⼊⼀个整数,如果等于你规定的整数,就猜中了,如果⼩于规定的数,提示“⼩了”,否则提示“⼤了”,直到猜中位置。
答案:
import random
answer = random.randint(1,100)
guess = -1
while True:
guess = eval(input("请猜数:"))
if guess > answer:
print("大了")
elif guess < answer:
print("小了")
else:
break
print("猜对了")
2.打印图形(使⽤循环)。
答案:
n = eval(input("输入n的值:"))
for x in range(1, n + 1):
for y in range(0, ((2 * n - 1) - (2 * x - 1)) // 2):
print(" ", end="")
for y in range(0, 2 * x - 1):
print("*", end="")
for y in range(0, x - 1):
print(" ", end="")
print()
3.python1904班有10个同学,请你设计⼀个程序输⼊每个同学的测验成绩,求总成绩和平均成绩。
答案:
scoreList = []
sumSco = 0
avgSco = 0
for i in range(10):
score = eval(input("请输入学生的成绩:"))
scoreList.append(score)
for score in scoreList:
sumSco += score
avgSco = sumSco / len(scoreList)
print("总成绩为%d,平均成绩为%d" %(sumSco, avgSco))
4.四则计算器,从键盘输⼊两个数和⼀个运算符(±*/),根据运算符计算表达式的结果。提示:请考虑除数为0的情况。
答案:
while True:
num1, num2 = eval(input("请输⼊两个数,⽤逗号隔开:"))
symbol = input("请输⼊运算符(+-*/)(输入其他以退出):")
if symbol == "+":
res = num1 + num2
print("%d + %d = %d" %(num1, num2, res))
elif symbol == "-":
res = num1 - num2
print("%d - %d = %d" %(num1, num2, res))
elif symbol == "*":
res = num1 * num2
print("%d * %d = %d" % (num1, num2, res))
elif symbol == "/":
res = num1 / num2
print("%d / %d = %.2f" %(num1, num2, res))
else:
exit()
5.求1000以内的素数。
答案:
i = 2
while i < 1000:
div = 2
while div < i:
if i % div == 0:
break
div += 1
else:
print(i, end=" ")
i += 1
6.输出1000以内的所有⽔仙花数。
答案:
for i in range(100, 1000):
x = i % 10
y = i // 10 % 10
z = i // 100 % 10
if x ** 3 + y ** 3 + z ** 3 == i:
print(i, end=" ")