python入门必练100题 (python十大入门必读书籍)

题1 1级问题:编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。提示:考虑使用range(#begin, #end)方法

解决方案:

l=[]for i in range(2000, 3201):    if (i%7==0) and (i%5!=0):        l.append(str(i)) print (','.join(l))

题2 1级问题:编写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。假设向程序提供以下输入:8则输出为:40320提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。解决方案:

def fact(x):    if x == 0:        return 1    return x * fact(x - 1)print('请输入一个数字:')x=int(input())print (fact(x))

题3 1级问题:使用给定的整数n,编写一个程序生成一个包含(i, i*i)的字典,该字典包含1到n之间的整数(两者都包含)。然后程序应该打印字典。假设向程序提供以下输入:8则输出为:{1:1,2:4,3:9,4:16,5:25,6:36,,7:49,8:64}提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。考虑使用dict类型()解决方案:

print('请输入一个数字:')n=int(input())d=dict()for i in range(1,n+1):    d[i]=i*i print(d)

题4 1级问题:编写一个程序,该程序接受控制台以逗号分隔的数字序列,并生成包含每个数字的列表和元组。假设向程序提供以下输入:34岁,67年,55岁,33岁,12日,98年则输出为:['34', '67', '55', '33', '12', '98'] ('34', '67', '55', '33', '12', '98')提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。方法可以将列表转换为元组解决方案:

import reprint('请输入一组数字:')values=input()l=values.split(",")k=re.findall(r'[0-9]+',values)t=tuple(k)print (k)print (t)

题5 1级问题:定义一个至少有两个方法的类: getString:从控制台输入获取字符串 printString::打印大写母的字符串。还请包含简单的测试函数来测试类方法。提示:使用_init__方法构造一些参数解决方案:

class InputOutString(object):    def __init__(self):        self.s = ""     def getString(self):        print('请输入字符串:')        self.s = input()     def printString(self):        print (self.s.upper()) strObj = InputOutString()strObj.getString()strObj.printString()

题6 2级问题:

编写一个程序,根据给定的公式计算并打印值:

python100道基础入门练习题附答案,python十大入门必读书籍

。以下是C和H的固定值:C是50。H是30。D是一个变量,它的值应该以逗号分隔的序列输入到程序中。例子假设程序的输入序列是逗号分隔的:100,150,180,程序输出为:18,22,24提示:如果接收到的输出是小数,则应四舍五入到其最近的值(例如,如果接收到的输出是26.0,则应打印为26)。在为问题提供输入数据的情况下,应该假设它是控制台输入。解决方案:

#!/usr/bin/env pythonimport mathc=50h=30value = []print('请输入一组数字:')items=[x for x in input().split(',')]for d in items:    value.append(str(int(round(math.sqrt(2*c*float(d)/h))))) print (','.join(value))

python100道基础入门练习题附答案,python十大入门必读书籍

题7 2级问题:编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。注意:i= 0,1 . .,X - 1; j = 0, 1,­Y-1。例子假设程序有以下输入:3、5则程序输出为:[[0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8]]提示:注意:如果要为问题提供输入数据,应该假设它是一个控制台输入,以逗号分隔。解决方案:

print('请输入两个数字:')input_str = input()dimensions=[int(x) for x in input_str.split(',')]rowNum=dimensions[0]colNum=dimensions[1]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)

题8 2级问题:编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:without,hello,bag,world则输出为:bag,hello,without,world提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。解决方案:

items=[x for x in input().split(',')]items.sort()print (','.join(items))

题9 2级问题:编写一个程序,接受一行序列作为输入,并在将句子中的所有字符大写后打印行。假设向程序提供以下输入:Hello worldPractice makes perfect则输出为:HELLO WORLDPRACTICE MAKES PERFECT提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。解决方案:

lines = []while True:    s = input()    if s:        lines.append(s.upper())    else:        break; for sentence in lines:    print(sentence)

题10 2级问题:编写一个程序,接受一系列空格分隔的单词作为输入,并在删除所有重复的单词并按字母数字排序后打印这些单词。假设向程序提供以下输入:hello world and practice makes perfect and hello world again则输出为:again and hello makes perfect practice world提示:在为问题提供输入数据的情况下,应该假设它是控制台输入。我们使用set容器自动删除重复的数据,然后使用sort()对数据进行排序。解决方案:

print('请输入一组字符串:')s = input()words = [word for word in s.split(" ")]print (" ".join(sorted(list(set(words)))))

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。获取方式,私信小编 “ 01 ”,即可免费获取哦!