练习4

21 阅读2分钟

题目1:定义一个DateTime变量,用来存放当前的系统时间,同时,将它格式化为字符串,格式为:年-月-日 小时:分钟:秒。

python
 体验AI代码助手
 代码解读
复制代码
import datetime
now = datetime.datetime.now()
print(now)
# 转换为字符串
time_str = now.strftime("%Y-%m-%d %H:%M:%S")
print(time_str)

题目2:编程求解2~1000内的所有回文素数。

只能由1和它本身整除的整数被称为素数;若一个素数从左向右读与从右向左读是是相同的数,则该素数为回文素数。

python
 体验AI代码助手
 代码解读
复制代码
def isHui(num):
    num_str = str(num)
    if num_str == num_str[::-1]:   # 是回文串
        return True
    else:
        return False

def isSu(num):
    flag = 0 #初始化为0,当它==1,代表num不是素数
    for item in range(2,num):
        # 判断[2,num-1]范围 num能否被其中任意一个数整除
        if num % item ==0:
            flag = 1  # 如果能够被整除,就将flag设置为1
            break
    if flag == 1:
        return False # 不是素数
    else:
        return True # num是素数
# 求解2~1000内的所有回文素数
for num in range(2,1001):
    if isHui(num) and isSu(num):
        print(num,end=" ")

题目3:若一个数刚好等于它的因子之和,那么这个数就称为“完数”,例如6=1+2+3,6就是完数。编程打印1000以内的所有完数。

python
 体验AI代码助手
 代码解读
复制代码
import math
def isWan(num):
    if num <= 1:
        return False # 不是完数
    sum = 1 # 存放整数num的公因数的和
    for i in range(2,int(math.sqrt(num)) + 1):
        if num%i == 0:
            sum += i
            # 避免重复添加公因数
            if i != num // i:
                sum += num // i
    return sum ==num
print()
print("1000以内的所有完数为:")
for num in range(1000):
    if isWan(num):
        print(num,end=" ")

题目4:从键盘输入一个不多于5位的正整数,判断其为几位数并将其逆序输出。

python
 体验AI代码助手
 代码解读
复制代码
print()
while True:
    num = int(input("请输入一个正整数:"))
    num_str = str(num)
    if len(num_str) > 5:
        continue
    print(num, "的位数为:", len(num_str))
    print(num, "的逆序为:", num_str[::-1])
    break

题目5:有4个数字:1、2、3、4,其能组成多少组三位数?要求各数位间数字不能相同,比如112不符合要求,123则符合。

python
 体验AI代码助手
 代码解读
复制代码
count = 0 #记录多少组
ls = []  # 记录结果
for a in range(1,5):    # 百位数 1-4
    for b in range(1,5):
        if a == b:
            continue
        for c in range(1,5):
            if c != b and a != c:
                num = a * 100 + b * 10 + c
                ls.append(num)
                count += 1
print(ls)