作业三--python的基本流程控制(带答案)

填空题

1. (填空题) Python中有两种循环结构,分别是_____for____和_____while_____,其中前者尤其适合遍历列表、元组、字典、集合或类似对象中的元素。

2. (填空题) 在循环结构中,一旦___break_______语句被执行,将使得该语句所属层次的循环提前结束;_____continue_____语句的作用则提前结束本次循环,忽略该语句之后的所有语句,提前进入下一次循环。

判断题

当列表作为条件表达式时,空列表等价于False,包含任何内容的列表等价于True,所以表达式[3, 5, 8] == True的结果是True。(     错)

 数字3和数字5直接作为条件表达式时,作用是一样的,都表示条件成立。  ( 对   )

选择结构必须带有else或elif子句。 ( 错   )

在Python中,else只有选择结构这一种用法,在其他场合不允许使用else关键字。        (    错)

只允许在循环结构中嵌套选择结构,不允许在选择结构中嵌套循环结构。    (    错)

计算题

  使用筛选法求解小于n的所有素数。

if __name__ == '__main__':
   n=int (input("请输入一个整数:"))
   for i in range(2,n):
       flag=True
       for j in range(2,i-1):
           if(i % j ==0 ):
               flag=False
               break
       if flag:
           print(i," ")

 

  计算小于1000的所有整数中能够同时被5和7整除的最大整数。

if __name__ == '__main__':
   for i in range(1000,1,-1):
       if i%7==0 and i%5==0:
           print(i)
           break

 要求用户输入一些数字,输出这些数字中只出现过一次的那些数字。

if __name__ == '__main__':
   count={}
   s = input('请输入数字:')
   for c in s:
       if c in count:
           count[c]+=1
       else:
           count[c]=1
   for c in s:
       if count[c]==1:
           print(c)

 要求用户输入一些数字,输出这些数字中的唯一数字。也就是说,如果某个数字出现了多次,只保留一个。

if __name__ == '__main__':
   dist={}
   s=input("请输入数字:")
   for c in s :
       if c in dist:
           continue
       else:
           print(c)
           dist[c]=1

 实现抓狐狸游戏。假设墙上有5个洞(编号分别为0、1、2、3、4),其中一个洞里有狐狸,人类玩家输入洞口编号,如果洞里有狐狸就抓到了;如果洞里没有狐狸就第二天再来抓。但在第二天人类玩家来抓之前,狐狸会跳到隔壁的洞里。

import random
day = 1
hole=[0,0,0,0,0]
fox=random.randint(0,4)
hole[fox]=1
def foxMove(hole):
   move=random.randint(0,1)
   if move==1 and hole[4]!=1:
       old=hole.index(1)
       hole[old]=0
       hole[old+1]=1
   else:
       old=hole.index(1)
       hole[old]=0
       hole[old-1]=1

if __name__ == '__main__':
   while True :
       num=int (input("请输入你的洞的编号:"))-1
       if(num<0 or num> 4):
           print("输入错误请重新输入")
           continue
       if hole[num] == 1:
           print("恭喜你在第{}天在第{}号洞抓到了狐狸".format(day,num+1))
           break
       print("对不起此{}洞没有狐狸".format(num+1))
       day +=1
       foxMove(hole)

 生成一个包含20个[1, 50]随机整数的列表,然后使用插入法对给定整数列表中的所有元素升序排序。

import random

arr = [random.randint(1, 50) for _ in range(20)]

def insertion_sort(arr):
   for i in range(1, len(arr)):
       key = arr[i]
       j = i - 1
       while j >= 0 and key < arr[j]:
           arr[j + 1] = arr[j]
           j -= 1
       arr[j + 1] = key

if __name__ == '__main__':
   print("未排序前:", arr)
   insertion_sort(arr)
   print("排序后:", arr)

生成一个包含20个[1, 50]随机整数的列表,将其循环左移5个元素。所谓循环左移是指,每次移动时把列表最左侧的元素移出列表然后追加到列表尾部。 

import random
arr =[random.randint(1,50) for _ in range(20)]
if __name__ == '__main__':
   print(arr)
   a1 = arr[0]
   a2 = arr[1]
   a3 = arr[2]
   a4 = arr[3]
   a5 = arr[4]
   for i in range(5,len(arr)):
       arr[i-5] = arr[i]
   arr[19] = a5
   arr[18] = a4
   arr[17] = a3
   arr[16] = a2
   arr[15] = a1
   print(arr)


 给定一个包含若干数字的列表A,编写程序计算满足0≤a≤b

import  random
arr =[random.randint(1,10) for _ in range(20)]
if __name__ == '__main__':
   print(arr)
   max = arr[1]-arr[0]
   for i in  range(1,len(arr)):
       for j in range(i+1,len(arr)):
           k = arr[j] - arr[i]
           if max

 6岁的小明上楼梯,一步只能迈1个或3个台阶,现在有段15个台阶的楼梯,要想上到第15个台阶,编写程序计算小明有多少种上法。

def countWays(n):
   dp = [0] * 16
   dp[1]=1
   dp[2] = 1
   dp[3] =2
   for i in range(4,16):
       dp[i]=dp[i-1]+dp[i-3]
   return dp[15]

if __name__ == "__main__":
   n = 15
   ways = countWays(n)
   print(f"小明上到第{n}个台阶共有{ways}种上法。")

 

写出下面程序的运行结果。

s=0
for i in range(1,101):
    s+=i
else:
    print(1)

答案:1

写出下面程序的运行结果。

s=0
for i in range(1,101):
    s+=i
    if i==50:
        print(s)
        break
else:
    print(1)

 答案:1275

19. (计算题)

下面的程序是否能够正常执行,若不能,请解释原因;若能,请分析其执行结果。

from random import randint
result = set()
while True:
    result.add(randint(1,10))
    print(len(result))
    if len(result)==20:
        break
print(result)

不可以,因为set去重,他是随机生成1到10的数字,所以set的长度最大为10

编写程序,让用户输入一个整数,如果输入的是正数就输出1,如果输入的是负数就输出-1,否则输出0。

n=int(input("请输入数字:"))
if n>0:
   print(1)
elif n<0:
   print(-1)
else:
   print(0)

 

 

你可能感兴趣的:(python,开发语言)