【第四章】python基本语法练习题
下面是一些python的基本语法入门题,大家可以一起学习下,如果可以,使用编辑器自己动手敲一遍更好
1、计算十进制整数 45678 和十六进制整数 0x12fd2 之和
def fun1():
num1 =45678
num2 =0x12fd2
print("num1+num2=",(num1+num2))
2、请用字符串表示出Learn Python in imooc
def fun2():
print("Learn Python in imooc")
3、请计算以下表达式的布尔值(注意==表示判断是否相等):
100 < 99
0xff == 255
def fun3():
print("100 < 99 :",100 <99)
print("0xff == 255 :",0xff ==255)
4、等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 x1 表示等差数列的第一项,用 d 表示公差,请计算数列
1 4 7 10 13 16 19 ...
前 100 项的和。
def fun4():
x1 =1
n =100
d =3
x100 = x1
5、请将下面两行内容用Python的字符串表示并打印出来:
Python was started in 1989 by "Guido".
Python is free and easy to learn.
def fun5():
s ="Python was started in 1989 by \"Guido\"."+"\nPython is free and easy to learn."
print(s)
6、请把下面的字符串用r'''...'''的形式改写,并用print打印出来:
'"To be, or not to be": that is the question.\nWhether it's nobler in the mind to suffer.'
def fun6():
print(r'''"To be, or not to be": that is the question.Whether it's nobler in the mind to suffer.''')
7、用多行Unicode字符串表示下面的唐诗并打印:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
def fun7():
print("静夜思\n床前明月光,\n疑是地上霜。\n举头望明月,\n低头思故乡。")
8、请计算 2.5 + 10 / 4 ,并解释计算结果为什么不是期望的 5.0 ?
请修复上述运算,使得计算结果是 5.0
def fun8():
print(2.5 +10.0 /4)
9、假设班里有3名同学:Adam,Lisa和Bart,他们的成绩分别是 95.5,85 和 59,请按照 名字, 分数, 名字, 分数... 的顺序按照分数从高到低用一个list表示,然后打印出来。
def fun9():
l = ['Adam',95.5,'Lisa',85,'Bart',59]
print(l)
print(l[0])
print(l[6])
10、三名同学的成绩可以用一个list表示:
L = [95.5, 85, 59]
请按照倒序索引分别打印出倒数第一、倒数第二、倒数第三。
def fun10():
L = [95.5, 85, 59]
print(L[-1]);
11、假设新来一名学生Paul,Paul 同学的成绩比Bart好,但是比Lisa差,他应该排到第三名的位置,请用代码实现。
def fun11():
L = ["Adam", "Lisa", "Bart"]
L.insert(2,"Peter");
print(L)
12、班里的同学按照分数排名是这样的:
L = ['Adam', 'Lisa', 'Bart']
但是,在一次考试后,Bart同学意外取得第一,而Adam同学考了倒数第一。
请通过对list的索引赋值,生成新的排名。
def fun12():
L = ['Adam', 'Lisa', 'Bart']
L[0] ='Bart';
L[-1] ='Adam'
print(L)
13、创建一个tuple,顺序包含0 - 9这10个数。
def fun13():
tuple = ("0","1","2","3","4","5","6","7","8","9")
tuple[0] ="1" #不支持分配/改动
print(tuple)
14、请指出右边编辑器中代码为什么没有创建出包含一个学生的 tuple:
t = ('Adam')
print t
请修改代码,确保 t 是一个tuple。
def fun14():
t = ("Adam",)
print(t)
print(t[0])
15、定义了tuple:
t = ('a', 'b', ['A', 'B'])
由于 t 包含一个list元素,导致tuple的内容是可变的。能否修改上述代码,让tuple内容不可变?
def fun15():
t = ('a', 'b', ('A', 'B'))
print(t)
16、如果成绩达到60分或以上,视为passed。
假设Bart同学的分数是75,请用if语句判断是否能打印出 passed:
def fun16():
score =75
if(score>=60):
print("passed")
else:
print("no pass")
print("no")
17、班里考试后,老师要统计平均成绩,已知4位同学的成绩用list表示如下:
L = [75, 92, 59, 68]
请利用for循环计算出平均成绩。
def fun17():
sum =0.00;
count =0;
L = [75, 92, 59, 68]
for scorein L:
sum+=score;
count+=1;
print(sum/count)
18、利用while循环计算100以内奇数的和。
def fun18():
num =0;
sum =0;
while num<=100:
if(num%2!=0):
sum+=num
num+=1;
print("sum=",sum)
19、利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + ... 的前20项的和
def fun19():
index =1
sum = 0
while True:
sum+=index
index+=1
if(index==21):
break;
print(sum)
20、对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:
def fun20():
sum =0
x =0
while True:
x = x +1
if x >100:
break
if x%2==0:
print(x,"是偶数")
continue
sum+=x
print(sum)
21、对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。
def fun21():
x1 = [1,2,3,4,5,6,7,8,9] #个位
x2 = [1,2,3,4,5,6,7,8,9] #十位
for x in x1:
for y in x2:
if(y<x):
print(y*10+x)
22、新来的Paul同学成绩是 75 分,请编写一个dict,把Paul同学的成绩也加进去。
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
def fun22():
d= {
'Adam':95,
'Lisa':85,
'Bart':59,
"Paul":75
}
print(d)
23、打印
def fun23():
d = {
'Adam':95,
'Lisa':85,
'Bart':59
}
print(d.get("Adam"))
d["Adam"] ="100";
print(d.get("Adam"))
for keyin d:
print("[]得出:",key,":",d[key])
print("get得出:",key,":",d.get(key))
24、请用set表示班里的4位同学:
Adam, Lisa, Bart, Paul
def fun24():
x =set(["Adam","Lisa", "Bart","Paul","Adam"])
print(x)
print("adam" in x)
if "Adamxx" in x:
print("Adam is in")
elif "Liasa" in x:
print("Lisa is in")
else:
print("no one");
25、请用 for 循环遍历如下的set,打印出 name: score 来。
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
def fun25():
s =set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
for listin s:
print(list[0]+":",+list[1])
26、针对下面的set,给定一个list,对list中的每一个元素,如果在set中,就将其删除,如果不在set中,就添加进去。
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
def fun26():
s =set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for valuein L:
if valuein s:
s.remove(value)
else:
s.add(value)
print(s)
27、请定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。
def fun27(list):
for valuein list:
print(value)
28、请定义一个 greet() 函数,它包含一个默认参数,如果没有传入,打印 'Hello, world.',如果传入,打印 'Hello, xxx.'
def fun28(a ="world"):
print("hello ",a)
29、请编写接受可变参数的 average() 函数。
def fun29(*args):
sum =0;
if len(args)==0:
print(sum)
else:
for numin args:
sum+=num
print(sum)
30、range()函数可以创建一个数列:
range(1, 101)
[1, 2, 3, ..., 100]
请利用切片,取出:
- 前10个数;
- 3的倍数;
- 不大于50的5的倍数。
def fun30():
print(L[:10])
print(L[2::3])
print(L[4:50:5])
for sin L[:10]:
print(s)
31、给定一个dict:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
请计算所有同学的平均分。
def fun31():
d = {'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':74 }
sum =0.0
for valuein d:
sum+=d.get(value)
print(sum/len(d))
32、请根据dict:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
打印出 name : score,最后再打印出平均分 average : score。
def fun32():
d = {'Adam':95, 'Lisa':85, 'Bart':59, 'Paul':74 }
sum =0.00;
for key,valin d.items():
print(key,val)
sum+=val
print(sum/len(d))