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 == 0 and i % 5 != 0:
print(i, end=',')
print()# 方法二:
print(','.join(str(i) for i in range(2000, 3201) if i % 7 == 0 and i % 5 != 0))# 方法三:
print(','.join(list(map(str, filter(lambda x: x % 7 == 0 and x % 5 !=0,range(2000,3201))))))
习题02.
编写一个程序,可以计算给定数字的阶乘。所获得的结果需以逗号分隔,按顺序打印在一行上。老师参考:
假设在程序中输入以下数字:
8
则输出应为:
40320
def fact(x)
if x == 0:
return 1:
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:
return 1
else:
return n * loop(n-1)
s4 = loop(n)
print(s4)
习题03.
【Python学习笔记(基础+进阶10道练习题)】使用给定的整数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.
编写一个程序,要求该程序从控制台接收一个以逗号(英文逗号)分隔的数字序列,并生成一个列表和一个包含每个数字的元组。老师参考:
假设在程序中输入以下数字:
34,67,55,33,12,98
则输出应为:
[‘34’, ‘67’, ‘55’, ‘33’, ‘12’, ‘98’]
(‘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()
def printString(self):
print self.s.upper() strObj = inputOutString()
strObj.getString()
strObj.pringString()
习题06.
编写一个程序,根据给定的公式进行计算并输出值:Q = [(2 * C * D)/ H]的平方根老师参考:
以下是C和H的固定值:C为50,H为30。
D为变量,其值应以逗号分隔,按顺序输入到程序中。
例:
假定以逗号(英文逗号)分隔的输入序列已赋予程序:
100,150,180
则程序应输出:
18,22,24
import math
c = 50
h = 30
value = https://www.it610.com/article/[]
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 = [[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)
小编参考:
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)))))
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 逻辑回归的理解与python示例
- 一起来学习C语言的字符串转换函数
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 定制一套英文学习方案