使用双重 for 循环,学习 print 打印函数的使用。
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}X{i}={i*j}", end="\t")
print()
1X1=1 1X2=2 2X2=4 1X3=3 2X3=6 3X3=9 1X4=4 2X4=8 3X4=12 4X4=16 1X5=5 2X5=10 3X5=15 4X5=20 5X5=25 1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36 1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49 1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64 1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
def print_triangle(num):
for i in range(1, num + 1):
print(" " * (num - i), end="")
print("*" * (2 * i - 1))
print_triangle(10)
* *** ***** ******* ********* *********** ************* *************** ***************** *******************
def print_diamond(num):
print_triangle(num)
for i in range(num - 1, 0, -1):
print(" " * (num - i), end="")
print("*" * (2 * i - 1))
print_diamond(7)
* *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** *
一个数如果恰好等于它的因数之和,这个数就称为“完数”,例如 6=1+2+3。
def is_perfect_number(num):
sum = 1
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
sum += i
sum += num / i
return sum == num
perfect_numbers = [num for num in range(2, 101) if is_perfect_number(num)]
print(f"100 以内的所有完数:{perfect_numbers}")
100 以内的所有完数:[6, 28]
自然数 n 的阶乘 n!,是指 1, 2, …, n 这 n 个数的连乘积。
def factorial(num):
a = 1
for i in range(2, num + 1):
a *= i
return a
factorial(4)
24
import math
math.factorial(4)
24
闰年的判断条件 (如下两个条件满足任意一个就是闰年):
def is_leap_year(year):
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return True
else:
return False
is_leap_year(2000)
True
is_leap_year(2100)
False
is_leap_year(2104)
True
判断一个日期是该年份中的第几天。
def count_day(year, month, day):
day_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_leap_year(year):
day_list[1] = 29
return sum(day_list[0 : month - 1]) + day
count_day(2024, 3, 1)
61
用 0、1、2、3、4 这五个数字,能组成多少个互不相同且无重复数字的三位数,并输出这些三位数。简单分析一下,百位上可以是 1、2、3、4 这四种可能;十位上,除去百位上已用的数字,还有四种可能;个位上,还有三种可能。根据乘法原理,一共有 4×4×3=48 种情况。
import itertools
nums = []
for x, y, z in itertools.product(range(1, 5), range(5), range(5)):
if x != y and x != z and y != z:
nums.append(100 * x + 10 * y + z)
print(nums)
[102, 103, 104, 120, 123, 124, 130, 132, 134, 140, 142, 143, 201, 203, 204, 210, 213, 214, 230, 231, 234, 240, 241, 243, 301, 302, 304, 310, 312, 314, 320, 321, 324, 340, 341, 342, 401, 402, 403, 410, 412, 413, 420, 421, 423, 430, 431, 432]
len(nums)
48