Python学习笔记:基础+进阶10道练习题
习题01.
编写⼀个程序,查在2000到3200之间(包含这两个数)中能被7整除,但不是5的倍数的所有数。获得的数字需以逗号分隔,按顺序打印在同⼀⾏上。
⽼师参考:
1st =[]
for i in range(2000,3201):
if(i%7==0)and(i%5!==0)
lst.append(str(i))
print(','.join(lst))
⼩编参考:
# ⽅法⼀:
for i in range(2000,3201):
if i %7==0and i %5!=0:
apache log检测工具print(i, end=',')
print()
# ⽅法⼆:
print(','.join(str(i)for i in range(2000,3201)if i %7==0and i %5!=0))
# ⽅法三:
print(','.join(list(map(str,filter(lambda x: x %7==0and x %5!=0,range(2000,3201))))))
习题02.
编写⼀个程序,可以计算给定数字的阶乘。所获得的结果需以逗号分隔,按顺序打印在⼀⾏上。
假设在程序中输⼊以下数字:
8
则输出应为:
40320
⽼师参考:
def fact(x)
if x ==0:
return1:
return x * fact(x-1)
x =int(input())
print fact(x)
⼩编参考:
n =int(input())
# ⽅法⼀:
s =1
for i in range(1, n+1):
s *= i
print(s)
# ⽅法⼆:
import math
s2 = math.factorial(n)
print(s2)
# ⽅法三:
from functools import reduce
s3 =reduce(lambda x, y: x*y,range(1, n+1))
print(s3)
# ⽅法四
def loop(n):
if n <=0:
return1
else:
return n * loop(n-1)
s4 = loop(n)
print(s4)
习题03.
使⽤给定的整数n,编写⼀个程序,要求⽣成包含键值对“i: i*i”的字典,该字典为1到n之间的整数(包含这两个数)。运⾏程序输出字典。
假设在程序中输⼊以下数字:
8
则输出应为:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
⽼师参考:中序线索二叉树的遍历
n =int(input())
d =dict()
for i in range(1, n+1):
d[i]= i*i
print(d)
⼩编参考:
n =int(input())
# ⽅法⼀:
d ={}
for i in range(1, n+1):
d[i]= i * i
print(d)
# ⽅法⼆:
print({i:i*i for i in range(1, n+1)})
# ⽅法三:
d2 =dict(zip([i for i in range(1, n+1)],[i*i for i in range(1, n+1)]))
print(d2)
习题04.
编写⼀个程序,要求该程序从控制台接收⼀个以逗号(英⽂逗号)分隔的数字序列,并⽣成⼀个列表和⼀个包含每个数字的元组。
toggle是什么意思中文
假设在程序中输⼊以下数字:
34,67,55,33,12,98
则输出应为:
[‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’]
javase教学视频
(‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’)
⽼师参考:
values =input()
1st = values.split(",")
t =tuple(1)
print(lst)
print(t)
习题05.
定义⼀个⾄少有两种⽅法的类:
getString:从控制台输⼊获取字符串
printString:以⼤写形式输出字符串
也要包括简单的测试功能,以测试类⽅法。
⽼师参考:
class InputOutString:
def__init__(self):
self.s =""
def getString(self):
self.s =input()
python基础知识测试
def printString(self):
print self.s.upper()
strObj = inputOutString()
strObj.pringString()
习题06.
编写⼀个程序,根据给定的公式进⾏计算并输出值:Q = [(2 * C * D)/ H]的平⽅根
以下是C和H的固定值:C为50,H为30。
D为变量,其值应以逗号分隔,按顺序输⼊到程序中。
例:
假定以逗号(英⽂逗号)分隔的输⼊序列已赋予程序:
100,150,180
html5游戏怎么在手机上玩则程序应输出:
18,22,24
⽼师参考:
import math
c =50
h =30
value =[]
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))
习题07.
编写⼀个程序,该程序将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]]
⽼师参考:
input_str =input()
dimensions =[int(x)for x in input_str.split(',')]
rowNum = dimensions[0]
colNum = dimensions[1]
multilist =[[0for 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)
⼩编参考:
def lianxi_07(x, y):
# ⽅法⼀:
new_lst =[]
for i in range(x):
lst =[]
for j in range(y):
lst.append(i * j)
new_lst.append(lst)
print(new_lst)
# ⽅法⼆:
print([[i * j for j in range(y)]for i in range(x)])
lianxi_07(3,5)
习题08.
编写⼀个程序,该程序接受以逗号分隔的单词作为输⼊,并在按字母顺序排序后,将这些单词以逗号分隔的形式输出。
假设在程序中输⼊以下单词:
without,hello,bag,world
则程序应输出:
bag,hello,without,world
⽼师参考:
items =[x for x in input().split(',')]
items.sort()
print(','.join(items))
习题09.
**编写⼀个程序,改程序接受序列作为输⼊,并能将输⼊句中的字母全部改为⼤写后输出。
假设在程序中输⼊以下:
Hello world
Practice makes perfect
则程序应输出:
HELLO WORLD
PRACTICE MAKES PERFECT
**
⽼师参考:
lines =[]
while True:
s =input()
if s:
lines.append(s.uppper())
else:
break
for sentence in lines:
print(sentence)
习题10.
编写⼀个程序,该程序接受⼀系列以空⽩格分隔的单词作为输⼊,并在删除所有重复单词且按照字母顺序排序后,输出这些单词。
假设在程序中输⼊以下:
hello world and practice makes perfect and hello world again
则程序应输出:
again and hello makes perfect practice world
⽼师参考:
s =input()
words =[word for word in s.split(" ")]
print(" ".join(sorted(list(set(words)))))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。