Python习题集:基础篇

本文提供了一系列Python基础编程习题,涵盖变量运算、字符串处理、列表操作、逻辑判断等多个方面,旨在帮助初学者巩固Python知识。题目包括计算十进制与十六进制整数之和、打印字符串、等差数列求和、字符串格式化、唐诗表示、算术运算理解、列表排序与操作、条件判断与循环控制等,适合Python入门者进行自我检测和提升。
摘要由CSDN通过智能技术生成

【说明1】本文练习题均整理自imooc教程初识Python(课程已下架),可学习Python3 入门教程 2020全新版,答案为原创,用于个人学习与巩固,如有更好方案,欢迎大神赐教!
【说明2】本教程基于Python2.x,与Python3.7有细微差别

========================================================

1.计算十进制整数 45678 和十六进制整数 0x12fd2 之和。

print 45678+0x12fd2

2.请用两种方式打印出 hello, python.

#input code
print 'hello, python.'
print 'hello,''python.'

3.等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用变量 x1 表示等差数列的第一项,用 d 表示公差,请计算数列1 4 7 10 13 16 19 …前 100 项的和。

x1 = 1
d = 3
n = 100
x100 = x1+(n-1)*d
s = n*x1+(n*(n-1)*d)/2
print s

4.请将下面两行内容用Python的字符串表示并打印出来:
  Python was started in 1989 by “Guido”.
  Python is free and easy to learn.

s = 'Python was started in 1989 by "Guido".\nPython is free and easy to learn.'
print s

5.请把下面的字符串用r’’’…’’'的形式改写,并用print打印出来:
‘“To be, or not to be”: that is the question.\nWhether it’s nobler in the mind to suffer.’

print r'''"To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer.'''

6.用多行Unicode字符串表示下面的唐诗并打印:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。

# -*- coding: utf-8 -*-
print '''静夜思

床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。'''

7.请计算 2.5 + 10 / 4 ,并解释计算结果为什么不是期望的 5.0 ?
请修复上述运算,使得计算结果是 5.0

print 2.5 + 10 / 4.0

整数运算的结果永远是整数;整数与浮点数的运算结果是浮点数
Python3.7中10/4结果是2.5

8.请运行如下代码,并解释打印的结果:
a = ‘python’
print ‘hello,’, a or ‘world’
b = ‘’
print ‘hello,’, b or ‘world’

在这里插入图片描述
布尔类型运算规律:
① Python将 0空字符串’'None 看做 False
② Python将 非0数值非空字符串 看做 True

9.假设班里有3名同学:Adam,Lisa和Bart,他们的成绩分别是 95.5,85 和 59,请按照 名字, 分数, 名字, 分数… 的顺序按照分数从高到低用一个list表示,然后打印出来。

L = ['Adam',95.5,'Lisa', 85, 'Bart', 59]
print L

10.三名同学的成绩可以用一个list表示:
L = [95.5, 85, 59]
请按照索引分别打印出第一名、第二名、第三名,同时测试 print L[3]。

L = [95.5,85,59]
print L[0]
print L[1]
print L[2]

11.三名同学的成绩可以用一个list表示:
L = [95.5, 85, 59]
请按照倒序索引分别打印出倒数第一、倒数第二、倒数第三。

L = [95.5, 85, 59]
print L[-1]
print L[-2]
print L[-3]

12.假设新来一名学生Paul,Paul 同学的成绩比Bart好,但是比Lisa差,他应该排到第三名的位置,请用代码实现。

L = ['Adam', 'Lisa', 'Bart']
L.insert(2,'Paul')
print L

13.注意右边编辑器代码中 list 如下:
L = [‘Adam’, ‘Lisa’, ‘Paul’, ‘Bart’]
Paul的索引是2,Bart的索引是3,如果我们要把Paul和Bart都删掉,请解释下面的代码为什么不能正确运行:
L.pop(2)
L.pop(3)
怎样调整代码可以把Paul和Bart都正确删除掉?

L = ['Adam', 'Lisa', 'Paul', 'Bart']
L.pop(2)
L.pop(2)
print L

14.班里的同学按照分数排名是这样的:
L = [‘Adam’, ‘Lisa’, ‘Bart’]
但是,在一次考试后,Bart同学意外取得第一,而Adam同学考了倒数第一。
请通过对list的索引赋值,生成新的排名。

L = ['Adam', 'Lisa', 'Bart']
L[-1]='Adam'
L[0]='Bart'
print L

15.请指出右边编辑器中代码为什么没有创建出包含一个学生的 tuple:
t = (‘Adam’)
print t
请修改代码,确保 t 是一个tuple。

t = ('Adam',)
print t

因为()既可以表示tuple,又可以作为括号表示运算时的优先级;因此单元素的tuple需在末尾多加一个逗号

16.定义了tuple:
t = (‘a’, ‘b’, [‘A’, ‘B’])
由于 t 包含一个list元素,导致tuple的内容是可变的。能否修改上述代码,让tuple内容不可变?

t = ('a', 'b', ('A', 'B'))
print t

含有list元素的tuple,list内部元素可变

17.如果按照分数划定结果:
90分或以上:excellent
80分或以上:good
60分或以上:passed
60分以下:failed
请编写程序根据分数打印结果。

score = 85

if score>=90:
    print 'excellent'
elif score>=80:
    print 'good'
elif score>=60:
    print 'passed'
else:
    print 'failed'

18.班里考试后,老师要统计平均成绩,已知4位同学的成绩用list表示如下:
L = [75, 92, 59, 68]
请利用for循环计算出平均成绩。

L = [75, 92, 59, 68]
sum = 0.0
for score in L:
    sum=sum+score
print sum / 4

python3.7中可用mod()函数计算list的平均值:

import numpy
print(numpy.mod([75,92,59,68]))

for循环
① 变量可以在for循环中定义
② for循环可以遍历list和tuple

19.利用while循环计算100以内奇数的和。

m=100
n=1
sum=0
while n < m and n%2!=0:
    sum=sum+n
    n=n+2
print sum

while循环
① while不会迭代list和tuple元素,而是根据表达式判断循环是否结束
② 变量需在while循环外进行定义
③ 必须要有循环的退出条件(while后边的表达式)或break

20.利用 while True 无限循环配合 break 语句,计算 1 + 2 + 4 + 8 + 16 + … 的前20项的和。

sum = 0
x = 1
n = 1
while True:
    sum=sum+2**(n-1)
    n=n+1
    if n>20:
        break
print sum

==退出循环:break ==
等差数列求和

21.对已有的计算 0 - 100 的while循环进行改造,通过增加 continue 语句,使得只计算奇数的和:

sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum

sum = 0
x = 1
while True:
    x=x+1
    if x%2==0:
        continue
    elif x > 100:
        break
    else:
        sum=sum+x
print sum+1

继续循环:continue

22.对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。

for x in [1,2,3<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值