Python基础练习100题

第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

你可能感兴趣的:(数据分析,python)