python练习_day01

python练习_day01

    • 题目
    • 题目及其解答

github上python100题链接

题目

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

2、编写一个可以计算给定数字的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。
输入:8
输出:40320

3、使用给定的整数 n,编写程序以生成包含 (i, i x 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、编写一个程序,根据给定的公式计算并打印该值:Q = [(2 * C * D)/H] 的平方根,以下是 C 和 H 的固定值:C 是 50。H 是 30。D 是变量,其值应该以逗号分隔的序列输入到您的程序中。
输入:
100,150,180
输出:
18,22,24

7、编写一个程序,以 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]]

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

9、编写一个程序,接受行序列作为输入,并在将句子中的所有字符大写后打印行。
输入:
Hello world
Practice makes perfect
输出:
HELLO WORLD
PRACTICE MAKES PERFECT

10、编写一个程序,接受一系列以空格分隔的单词作为输入,并在删除所有重复单词并按字母数字排序后打印单词。
输入:
hello world and practice makes perfect and hello world again
输出:
again and hello makes perfect practice world

题目及其解答

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

for i in range(2000,3000):
    if i%7 == 0 and i%5 != 0:
        print(i, end=",")
print("\b")
# \b退格消除最后一个逗号

2、编写一个可以计算给定数字的阶乘的程序。结果应该以逗号分隔的顺序打印在一行上。
输入:8
输出:40320

# 递归
def fact(n):
    if n == 0:
        return 1
    else:
        return n*fact(n-1)
n = int(input("Please input an numbers:"))
print(fact(n))
# 非递归
n = int(input("Please input an numbers:"))
result = 1
for i in range(1,n+1):
    result = result * i
print(result)

3、使用给定的整数 n,编写程序以生成包含 (i, i x i) 的字典,该字典是 1 和 n 之间的整数(包括两者)。 然后程序应该打印字典。
输入:
8
输出:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}

n = int(input("Please input an numbers:"))
result = {}
for i in range(1,n+1):
    result[i] = i * i
print(result)

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

data = input()
list_data = data.split(",")
print(list_data)
print(tuple(list_data))

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

class myString:
    
    def getString(self):
        self.s = input()
        
    def printString(self):
        print(self.s.upper())
        
test1 = myString()
test1.getString()
test1.printString()

6、编写一个程序,根据给定的公式计算并打印该值:Q = [(2 * C * D)/H] 的平方根,以下是 C 和 H 的固定值:C 是 50。H 是 30。D 是变量,其值应该以逗号分隔的序列输入到您的程序中。
输入:
100,150,180
输出:
18,22,24

import math
D = input()
C, H = 50, 30
D = D.split(",")
for i in D:
    print(round(math.sqrt(2*C*float(i)/H)), end=",")
print("\b")

7、编写一个程序,以 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]]

X,Y = map(int,input().split(','))
arrary = []
for i in range(X):
    temp = []
    for j in range(Y):
        temp.append(i*j)
    arrary.append(temp)
print(arrary)

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

s = input().split(",")
new_s = sorted(s)
print(",".join(new_s))

9、编写一个程序,接受行序列作为输入,并在将句子中的所有字符大写后打印行。
输入:
Hello world
Practice makes perfect
输出:
HELLO WORLD
PRACTICE MAKES PERFECT

lst = []

while True:
    x = input()
    if len(x)==0:
        break
    lst.append(x.upper())

for line in lst:
    print(line)

10、编写一个程序,接受一系列以空格分隔的单词作为输入,并在删除所有重复单词并按字母数字排序后打印单词。
输入:
hello world and practice makes perfect and hello world again
输出:
again and hello makes perfect practice world

s = set(input().split())
lst = list(s)
lst.sort()
print(" ".join(lst))

你可能感兴趣的:(#,Python,python)