使用筛选法求解小于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 6岁的小明上楼梯,一步只能迈1个或3个台阶,现在有段15个台阶的楼梯,要想上到第15个台阶,编写程序计算小明有多少种上法。 写出下面程序的运行结果。 答案:1 写出下面程序的运行结果。 答案:1275 下面的程序是否能够正常执行,若不能,请解释原因;若能,请分析其执行结果。 不可以,因为set去重,他是随机生成1到10的数字,所以set的长度最大为10 编写程序,让用户输入一个整数,如果输入的是正数就输出1,如果输入的是负数就输出-1,否则输出0。 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
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)
s=0
for i in range(1,101):
s+=i
if i==50:
print(s)
break
else:
print(1)
19. (计算题)
from random import randint
result = set()
while True:
result.add(randint(1,10))
print(len(result))
if len(result)==20:
break
print(result)
n=int(input("请输入数字:"))
if n>0:
print(1)
elif n<0:
print(-1)
else:
print(0)