Python编程题之流程控制语句

来自CloudWiki
跳转至: 导航搜索

基本编程题

题目1

1.获得用户输入的一组数字,采用逗号分隔,输出其中的最大值。 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入输出示例

  • 输入:8,3,5,7
  • 输出:8

题目2

s="9e10"是一个浮点数形式字符串,即包含小数点或采用科学计数法形式表示的字符串,编写程序判断s是否是浮点数形式字符串。如果是则输出True,否则输出False。

题目3

s="123"是一个整数形式字符串,编写程序判断 s 是否是整数形式字符串。如果是则输出 True,否则输出 False。要求代码不超过 2 行

题目4

ls 是一个列表,内容如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

ls = [123, "456", 789, "123", 456, "789"]

请补充如下代码,求其各整数元素的和:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

ls = [123, "456", 789, "123", 456, "789"]
s = 0
for item in ls:
    if ___①_  _ == type(123):
        s += ___②_  _
print(s)

题目5

while True:可以构成一个“死循环”。请编写程序利用这个死循环完成如下功能:循环获得用户输入,直至用户输入字符 y 或 Y 为止,并退出程序。

‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬

输入格式

 输入 n 行字符串,最后输入 y 或者 Y‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

 输出 n 行字符串,最后跳出循环

题目6

以论语中一句话作为字符串变量 s,补充程序,分别输出字符串 s 中汉字和标点符号的个数。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0  # 汉字个数
m = 0  # 标点符号个数

____①____ # 在这里补充代码,可以多行

print("字符数为{},标点符号数为{}。".format(n, m))

题目7

使用程序计算整数 N 到整数 N+100 之间所有奇数的数值和,不包含 N+100,并将结果输出。整数 N 由用户给出,代码片段如下,补全代码。不判断输入异常。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

N = input("请输入一个整数: ")

____①____ # 可以是多行代码 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入输出示例‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入 	输出
3 	2600

题目8

根据斐波那契数列的定义,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),输出不大于 100 的序列元素,提示代码如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

a,b = 0, 1
while ____①____:
    print(a, end = ",")
    a, b = ____②____

题目9

以 123 为随机数种子,随机生成 10 个在 1 到 999(含)之间的随机数,以逗号分隔,打印输出,请补充横线处代码。提示代码如下‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

import random
____①____
for i in range(____②____):
    print(____③____, end=",")

题目10

(选自测试题5) 编写程序,从键盘上获得用户连续输入且用逗号分隔的若干个数字(不必以逗号结尾),计算所有输入数字的和并输出,给出代码提示如下。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

n = input()
nums = ____①____ 
s = 0
for i in nums:
    ____②____
print(s)

输入输出示例‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

 输入 	输出
1,2,3,4     10

题目11

(选自测试题5)

编写程序,获得用户输入的数值 M 和 N,求 M 和 N 的最大公约数。提示代码如下。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

def GreatCommonDivisor(a,b):
    if b > a:
        a,b = b,a
    r = 1
    while r != 0:
        ____①____
        a = b
        b = r
    return a
m = eval(input())
n = eval(input())
print(____②____)

基本编程题:答案与解析

1.参考代码:

data = input()
a = data.split(",")
b = []
for i in a:
    b.append(int(i))
print(max(b))

代码2:

num_str = input("请输入一组数:")
num = num_str.split(",")
print(num)
max = eval(num[0])
for i in num:
    value = eval(i)
    if value > max:
        max =value

print("最大值",max)

2.

s = "9e10"
if type(eval(s)) == type(12.0):
    print("True")
else:
    print("False")

3.

s = "123"
print("True" if type(eval(s)) == type(1) else "False")

4.

ls = [123, "456", 789, "123", 456, "789"]
s = 0
for item in ls:
    if type(item) == type(123):
        s += item
print(s)

5.

while True:
    s = input()
    if s in ["y", "Y"]:
        break

代码2:

while True:
    s = input("请输入数据:")
    print("您输入的是",s)
    if s == 'y' or s == 'Y':
        break;

print("循环结束")

6.

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0  # 汉字个数
m = 0  # 标点符号个数
m = s.count(',') + s.count('?')
n = len(s) - m
print("字符数为{},标点符号数为{}。".format(n, m))

7.

N = input("请输入一个整数: ")
s = 0
for i in range(eval(N), eval(N)+100):
    if i%2 == 1:
        s += i
print(s)

8.

a, b = 0, 1
while a<=100:
    print(a, end=',')
    a, b = b, a + b

9.

import random
random.seed(123)
for i in range(10):
  print(random.randint(1,999), end=",")

10.

11. </nowiki>