python基础题:水仙花数、回文数、判断一个年份是闰年平年、判断素数、9*9乘法表、数字逆序、找规律的题

python初学编程入门小题

水仙花数

求1000以内的水仙花数:水仙花数:一个三位数各个位上的立方之和,等于本身。如果是水仙花数就打印“是水仙花数”,否则打印“不是水仙花数” 该数的每一位的立方和等于自身的值,比如:153=1^3+5^3+3^3

for num in range(100, 999):
    if ((num // 100) ** 3 + (num // 10 % 10) ** 3 + (num % 10) ** 3) == num:
        print(num)  # 153  370  371  407

回文数

从控制台输入一个五位数,如果是回文数就打印“是回文数”,否则打印“不是回文数”。例如:11111 12321 12221

#方法一:
num = input("请输入一个五位数:")
num1 = int(num)
num_list = []  # 空列表只能用追加,不能直接用索引赋值
for i in range(0, 5):
    a = num1 // 10 ** i % 10
    num_list.append(str(a))
# 5!='5'   list(num)中num为字符串形式,不能为int型
if list(num) == num_list:
    print("是回文数")
else:
    print("不是回文数")

#方法二:
list1 = []
for i in range(10000, 99999):
    if list(str(i)) == list(str(i))[::-1]:
        list1.append(i)
print(list1)

判断一个年份是闰年还是平年

判断一个年份是闰年还是平年;1.能被4整除而不能被100整除.(如2004年就是闰年,1800年不是)2.能被400整除.(如2000年是闰年))

year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print(f"{year}是闰年")
else:
    print(f"{year}不是闰年")

进阶题:
分别输入某年某月某日,判断这一天是这一年的第几天?(考虑闰年)
year = int(input(“年:”)),mouth = int(input(“月:”)),day = int(input(“日:”))

list = [0, 1, -1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1]
list1 = [0, 1, -2, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1]
year = int(input("请输入年份:"))
mouth = int(input("请输入月份:"))
days = int(input("请输入日:"))
num = 0
if (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
    for index in range(1, mouth):
        num = list[index] + num
    day = num + (mouth-1) * 30+days
    print(day)
else:
    for index in range(1, mouth):
        num = list1[index] + num
    day = num + (mouth-1) * 30+days
    print(day)

判断是不是素数

【素数:只能被1或本身整除的数】

#方法一
for j in range(2, 101):
    for i in range(2, j):
        if j % i == 0:
            break  # 1.break跳出else一起结束,不再执行。2.如果程序正常结束,没有使用break,代表for循环正常结束并执行else
    else:
        print(j, end=' ')
print('\n')

# 方法二:while-else
for j in range(2, 101):
    i = 2
    while i < j:
        if j % i == 0:
            break
        i += 1
    else:
        print(j, end=' ')

# 方法三
for j in range(2, 101):
    flag = 0
    for i in range(2, j):
        if j % i == 0:
            flag = 1
            break
    if flag != 1:
        print(j, end=' ')
        flag = 0
print('\n')

9*9乘法表

给定一个不大于9的数n,打印nn乘法表

num = int(input("请输入一个数:"))
for i in range(1, 10):
    for j in range(i, 10):
        print(f'{i}*{j}={i * j}', end=' ')
    print('\n')

数字逆序

给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.(*****)

n = int(input("请输入一个数:"))
string = ''
while n:
    a = n % 10
    n = n // 10
    string += str(a)
if string[0] == '0':
    print(string[1:])
else:
    print(string)

找规律的题

一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第n次落地时,共经过多少米?(*****)
规律:
第1次落地: 100
第2次落地: 100 + 502
第3次落地: 100 + 50
2 + 252
第4次落地: 100 + 50
2 + 252 + 12.52
第5次落地: 100 + 502 + 252 + 12.5*2 + …

n = int(input("请输入落地次数n:"))
count = sum = 0
item = high = 100
while count < n:
    sum = sum + item
    high = high / 2
    item = high * 2
    count += 1
print(sum)

求1!+2!+3!+4!+5!

"""sum1 = 0
num = 1
for i in range(1, 6):
    j = 1
    while j <= i:
        num = num * j
        j += 1
    sum1 = sum1 + num
    num = 1
print(sum1)"""


sum = 0
num = 1
for i in range(1, 6):
    num *= i
    sum += num
print(sum)

2, 输入两个数n,a, 输出对应的结果
如: n=3,a=2; 输出 2 + 22 + 222 的值。(**
如: n=4,a=3; 输出 3 + 33 + 333 + 3333的值。
提示: 1、n = 3,相加三次,每次相加比前一次相加的数,多一位
2、每次多的这个位数的值为a, 3, 3
10+3(33), 33
10+3(333),…

n = int(input("请输入n:"))
a = int(input("请输入a:"))
sum1 = item = 0
for i in range(n):
    item += a * 10 ** i
    sum1 += item
print(sum1)

希望对大家有所帮助!!!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值