第001题:求奇偶数
# 分支循环语句
even_list = []
odd_list = []
for i in range(0, 10):
# 判断是否为偶数
if i % 2 == 0:
even_list.append(i)
# 判断是否为奇数
elif i % 2 == 1:
odd_list.append(i)
print(even_list)
print(odd_list)
第002题:数字组合:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数,各是多少?
total = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and j != k and k != i:
print("{}{}{}".format(i, j, k))
total += 1
print("总共可以组成{}个三位数".format(total))
第003题:水仙花数:是指一个3位数,它的每个位上的数字的3次幂之和等于它本身
# 定义一个空列表存储生成的水仙花数
# 方法一:数学运算符
Narcissistic_number_list = []
for i in range(100, 1000):
one = i%10 # 获取三位数的个位
ten = i%100//10 # 获取三位数的十位
hun = i//100 # 获取三位数的百位
if i == one**3 + ten**3 + hun**3:
Narcissistic_number_list.append(i)
Narcissistic_number_list
# 方法二:字符串截取及数据类型转换
Narcissistic_number_list = []
for i in range(100, 1000):
s = str(i)
one = int(s[-1])
ten = int(s[-2])
hun = int(s[-3])
if i == one**3 + ten**3 + hun**3:
Narcissistic_number_list.append(i)
Narcissistic_number_list
第004题:九九乘法表
# 方法一:
for i in range(1,10):
for j in range(1, i+1):
print("{}*{}={}".format(i, j, i*j), end='\t')
print("\n")
# 方法二:
def Multiplication_table():
row = 1
while row <= 9:
col = 1
while col <= row:
print("{}*{}={}".format(row, col, row*col), end="\t")
col += 1
print("\n")
row += 1
Multiplication_table()
第005题:列表去重
# 定义一个包含重复元素的列表
l = [1, 1, 3, 4, 5, 3]
# 将列表转换成集合
s = set(l)
print(type(s))
# 去重后重新将集合转换为列表
l_distinct = list(s)
l_distinct
print(type(l_distinct))
第006题:列表扩展
list_1 = [1, 2, 3, 4]
list_2 = [5, 6, 7]
# 方法一:在列表中,+=本质上也是在调用extend方法
list_1 += list_2
list_1
# 方法二:extend
list_1.extend(list_2)
list_1
第007题:求平均值
num_list = [1, 2, 3, 4, 5, 6]
# 方法一:遍历列表
num_sum = 0
for i in num_list:
num_sum += i
num_avg = num_sum / len(num_list)
# 方法二:调用求和函数
num_avg = sum(num_list) / len(num_list)
第008题:求中位数
num_list = [1, 6, 3, 5, 4, 2]
# 对列表进行升序排序
num_list = sorted(num_list)
# 列表元素个数为偶数时
if len(num_list) % 2 == 0:
median = (num_list[len(num_list)//2] + num_list[len(num_list)//2-1]) / 2
# 列表元素个数为奇数时
elif len(num_list) % 2 == 1:
median = num_list[(len(num_list)-1)//2]
print(median)
第009题:求众数
num_list = [1, 6, 3, 5, 4, 2, 3, 5, 3, 5]
# 定义一个空列表存储最终获得的众数
values = []
# 先对数据去重
only_numbers = list(set(num_list))
# 定义一个空字典,用于存放不同元素的个数
num_dic = {}
for i in only_numbers:
num_dic[i] = num_list.count(i)
# 找出不同元素中出现个数的最大值
max_value = max(num_dic.values())
# 求解众数
for i in num_dic:
if num_dic[i] == max_value:
values.append(i)
values
num_dic
第010题:n的阶乘
# 5!= 5*4!
# 4!= 4*3!
# 3!= 3*2!
# 2!= 2*1!
# 1!= 1
def factorial(n):
# 1的阶乘为1
if n == 1:
return 1
# n的阶乘为n*(n-1)!
return n * factorial(n-1)
factorial(5)
第011题:斐波那契数列
def Fibonacci_sequence(n):
"""
递归函数输出斐波那契数列
"""
if n <= 1:
return n
else:
return Fibonacci_sequence(n-1) + Fibonacci_sequence(n-2)
# 定义一个空列表存储获取到的各项值
Fib_list = []
nums = int(input("请输入获取项数:"))
# 遍历每一项
for i in range(nums):
Fib_list.append(Fibonacci_sequence(i))
Fib_list
第012题:逆序列表
num_list = [1, 2, 3, 4, 5, 6]
# list[start, stop, step]
# 方法一:切片
num_list[::-1]
# 方法二:调用reverse方法
num_list.reverse()
num_list
第013题:将字符列表转换成字符串
char_list = ['h', 'e', 'l', 'l', 'o']
char = ''.join(char_list)
char
第014题:降序排列
num_list = [1, 6, 3, 5, 4, 2]
# reverse默认值为False,序列默认为升序排列,若需降序,需要将reverse设置为True
l = sorted(num_list, reverse=True)
l
第015题:sort()和sorted()的区别
num_list = [1, 6, 3, 5, 4, 2]
# sort()会在原列表上进行排序,所以返回值是None,不会新建列表
i = num_list.sort()
print(i)
# sorted()会生成一个新列表
j = sorted(num_list)
j