程序员

【第四章】python基本语法练习题

2018-08-01  本文已影响5人  你好夜故事

下面是一些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]
请利用切片,取出:

  1. 前10个数;
  2. 3的倍数;
  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))
上一篇下一篇

猜你喜欢

热点阅读