100例经典Python核心实战提升练习题汇总(一)

100例经典Python核心实战提升练习题汇总(一),第1张

这里整理了看一些Python练习题,内容偏基础,是很好的入门提高python编程能力的刷题宝典,分享给大家,一起学习一起进步!答案在最后。

在编程这一块,我也只算是个学生,所以难免出现错误,希望各位发现问题或者有更好的答案,能及时斧正,不甚感激!

1.编写一个程序,找出所有可被7整除但不是5的倍数的数字,2000年至3200年(均包括在内)。获得的数字应以逗号分隔的顺序打印在一行上。

提示:range(begin, end)

2.编写一个程序,可以计算给定数字的阶乘。结果应以逗号分隔的顺序打印在一行上。假设向程序提供了以下输入:8,输出:40320.

3.对于给定的整数n,编写一个程序生成一个包含(i,i*i)的字典,该字典是介于1和n之间的整数(两者都包括在内)。然后程序应该打印字典。假设以下输入被提供给程序:8,那么输出应该是:{1:1,2:4,3:9,4:16,5:25,6:36,7:49,8:64}

4.编写一个程序,从控制台接受逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设以下输入被提供给程序:34,67,55,33,12,98,那么输出应该是:[‘34’,‘67’,‘55’,‘33’,‘12’,‘98’](‘34’,‘67’,‘55’,‘33’,‘12’,‘98’)

5.定义一个至少有两个方法的类:getString:从控制台输入获取字符串。printString:以大写形式打印字符串。还请包括简单的测试函数来测试类方法。

6.给定C = 50,H = 30,D是待输入的以逗号分隔的序列,打印 Q = [ ( 2 ∗ C ∗ D ) / H ] Q=\sqrt{[(2 * C * D)/H]} [ ( 2 ∗ C ∗ D ) / H ] 的值。假设输入:100,150,180 然后输出18,22,24。

7.编写一个程序,以2位数字X和Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。其中i的范围为0,1,…,X-1;j的范围为0,1,…,Y-1。

8.编写一个程序,接受逗号分隔的单词序列作为输入,并在按字母顺序排序后按逗号分隔的顺序打印单词。假设向程序提供了以下输入:without,hello,bag,world,然后输出:bag,hello,without,world

9.编写一个程序, 逐行输入序列直到遇到空行结束 ,并在将句子中的所有字符大写后打印行。假设向程序提供以下输入:Hello world然后输出:HELLO WORLD

10.接收一组以空格分隔的一些词,打印去重后的词,并按顺序排列。比如输入:hello world and practice makes perfect and hello world again,则输出:again and hello makes perfect practice world。

答案:

第一题:

# 定义一个空列表
list1 = []
# 遍历可迭代对象range(2000, 3201),判断数字能否被7整除并且不能被5整除
for i in range(2000, 3201):
if (i % 7 == 0) and (i % 5 != 0):
# 将符合条件的数添加到列表list最后的位置
list1.append(str(i))
# 将所有符合条件的数字生成的列表用逗号连接起来
list1 = ','.join(list1)
# 打印列表
print(list1)

第二题:

# 定义函数,参数为num
def jiecheng(num):
# 判断如果num为0,则返回1
if num == 0:
return 1
else:
# 如果num不为0,则继续递归
return num * jiecheng(num - 1)

# 提示用户输入一个整数
data = int(input('请输入您要计算的整数:'))
# 打印计算结果
print(jiecheng(data))

第三题:

# 提示用户输入一个整数
n = int(input('请输入一个整数:'))
# 定义一个空字典,准备用来接收数据
dict1 = {}
# 遍历从1到n+1所有数
for i in range(1, n + 1):
# 将i和i的平方添加到字典里
dict1[i] = i ** 2
# 打印字典内容
print(dict1)

第四题:

# 提示用户输入数字序列
values = input("请输入以逗号分割的数字序列:")
# 使用逗号分割数字序列并返回字符串列表
l = values.split(",")
# 将字符串列表转换成元组
t = tuple(l)
# 打印字符串列表
print(l)
# 打印元组
print(t)

说明:string.split(str=",", num=string.count(str)),表示以str(逗号)为分隔符切片string,如果 num 有指定值,则仅分隔 num+1 个子字符串。

第五题:

# 定义类,继承基类
class InputOutString(object):
# 初始化方法定义一个空字符串s
def __init__(self):
self.s = ""

# 定义获取控制台输入的字符串方法
def getString(self):
self.s = input('请输入字符串:')

# 定义将获取的字符串里的字母全部转换为大写并打印
def printString(self):
print(self.s.upper())


# 创建对象test
test = InputOutString()
# test对象调用getString方法
test.getString()
# test对象调用printString方法
test.printString()

说明:

函数

含义

string.lower()

转换 string 中所有 大写字符为小写.

string.upper()

转换 string 中的小写字母为大写

string.islower()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符 都是小写 ,则返回 True,否则返回 False

string.isupper()

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符 都是大写 ,则返回 True,否则返回 False

string.capitalize()

转换 string 中的第一个字母为大写,其他字母变小写。


第六题:

# 导入math模块,因为要使用sqrt函数
import math
# 定义变量C、D
C = 50
H = 30
# 定义一个变量int_str用来接收用户输入的数字序列
int_str = (input('请输入数字序列,以逗号隔开:'))
# 将用户输入的用户序列用逗号隔开,并转化为列表赋值给变量D
D = int_str.split(',')
# 定义一个空列表,用来存储处理后的数据
Q = []
# 遍历列表D,并按照要求处理数据
for i in D:
# 先把列表里的字符串i转换为整型,然后再参与运算;再把运算结果开平方;再然后把开平方结果转换为整型;最后把得到的结果转换为字符串并添加到Q里
Q.append(str(int(math.sqrt(2 * C * int(i)/H))))
# 将Q里的各项用逗号连接并打印
print(','.join(Q))



说明:join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串。

第七题:

# 用户输入两个整数并以逗号隔开,赋值给input_str(字符串)
input_str = input('请以逗号为间隔输入:')
# 因为获得的输入是字符串,有多个数据,所以先将输入转化为列表,而且每个元素都变成整数型
dimensions = [int(x) for x in input_str.split(',')]
# 行数rowNum为dimensions的第一个整数元素,列数colNum为dimensions的第二个整数元素
rowNum = dimensions[0]
colNum = dimensions[1]
# 第一个for创建的是行,第二个for创建的是列,这个地方只是创建了一个二维数组,然后用0占位.

# [0 for col in range(colNum)]结果等同于[0] * colNum

# for row in range(rowNum)意思是生成rowNum个[0] * colNum列表,组成一个新列表multilist

multilist = [[0 for col in range(colNum)] for row in range(rowNum)]

for row in range(rowNum):
for col in range(colNum):
# 这里直接用索引去访问赋值
multilist[row][col] = row * col

print(multilist)

说明:

列表推导式x for x in range()

列表推导式创建列表的方式更简洁。常见的用法为,对序列或可迭代对象中的每个元素应用某种 *** 作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。

例如,创建平方值的列表:

squares = []
for x in range(10):
squares.append(x**2)

print(squares)

可以采用如下方式来完成

squares = [x**2 for x in range(10)]

创建和使用二维数组

这里也是使用了列表推导式来创建一个二维数组,而这里创建的二维数组所有的值都是0

multilist = [[0 for col in range(colNum)] for row in range(rowNum)]

二维数组的元素访问和修改:

multilist[row][col]= row*col

第八题:

# 利用列表推导式将用户输入的单词序列用逗号分割,生成字符串列表items
'''
效果等同于:
items = input("请输入单词序列:")
items = items.split(',')
'''
items = [x for x in input("请输入单词序列:").split(',')]
# 将列表items进行排序
items.sort()
# 用逗号连接排序后的列表元素并返回一个字符串,打印出来
print(','.join(items))

第九题:

# 定义一个空列表,准备接收用户输入
lines = []
# 使用循环,判断用户输入是不是空行
while True:
# 用字符串变量s接收用户输入
s = input('请输入单词序列:')
# 如果s不为空,则将字符串s所有字母转换为大写,并添加到列表lines里
if s:
lines.append(s.upper())
# 如果s为空,则结束循环
else:
break
# 遍历列表lines,并打印每一项
for i in lines:
print(i)

第十题:

# 接收用户输入的字符串,并用空格分割后转换为列表并存储在items里。
words = input('请输入单词序列,并以空格隔开:').split(" ")
# 将列表words转换为元组(元组自动去重)
unrepeat = set(words)
# 将元组unrepeat转换为列表并排序,然后将列表里的字符串以空格分割排序并打印
print(" ".join(sorted(list(unrepeat))))

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/741618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存