当前位置: 首页 > news >正文

Python 第二十一节 基础案例练习

1、判断是否为质数 -》只能能被 1 和自身 整除的数据, 不能被其它数据整除

def is_zhi(num):is_prime = Trueif num < 1:is_prime = Falseelif num == 2:is_prime = Trueelse:# 只需检查到num的平方根即可,优化效率print('=num==', int(num**0.5))for i in range(2, int(num**0.5) + 1):print('==i=', i)if num % i == 0:is_prime = Falsebreakreturn is_prime# print('===', int(3**0.5))
# print('==range=', range(2, int(3**0.5) + 1))
# print('===is=', is_zhi(5))

2、斐波那契数列

# 2.1/打印 斐波那契数列 n 之前的 数据
# 2.2/计算 斐波那契数列 n 之前的数据之和
# 需要初始化数据
f_a = 0
f_b = 1# f(0) = 0; f(1) = 1; f(n) = f(n-1)+f(n-2)
def my_fb(n):f_a = 0f_b = 1count = 0list = []while count < n:# n 之前的斐波那数据print(f_a, end=" ")list.append(f_a)f_a, f_b = f_b, f_a + f_bcount += 1print('=list==', list)# 利用 内置函数 sum() 计算 列表中所有数据之和sum_count = sum(list)print('==sum_count=', sum_count)# sum = 0# for ia in list:#     print('==ia=', ia)#     # 计算斐波那契数列 n 之前的数据之和#     sum = sum + ia # print('==sum=', sum)
my_fb(10)

3、判断是偶数还是奇数

def is_ouji(num):if num % 2 == 0:print(f'{num} 是偶数')else:print(f'{num} 是奇数')
is_ouji(5) # 5 是奇数
is_ouji(6) # 6 是偶数# num % 2 对于是否能被2整除的判断的判断
# % 是取模运算符,返回除法的余数

4、判断列表中最大值和最小值

# 可以使用 内置函数 max() 和 min()
numbers = [3, 5, 1, 9, 2]
max_value = max(numbers)
min_value = min(numbers)
print(f'最大值是: {max_value}, 最小值是: {min_value}')

5、计算一个数的阶乘

# 阶乘定义:n! = n * (n-1) * (n-2) * ... * 1,且 0! = 1
# 1、阶乘 是非负数,
# 2、0 和 1 的阶乘是 1
def my_factorial(n):if n < 0:return "阶乘未定义负数"elif n == 0 or n == 1:return 1else:result = 1# 1 - n 之间的所有整数相乘for i in range(2, n + 1):result *= ireturn result

6、回文判断

# 回文是指正读和反读都一样的字符串,例如 "racecar" 和 "level"
def is_palindrome(s):# 去掉空格并转换为小写s = s.replace(" ", "").lower()# 检查字符串是否等于其反转return s == s[::-1]

7、计算 字符串中 字母出现次数

# 忽略大小写 -》首先要将字符串转换为统一的小写
# 过滤非字母字符 -》可以使用 str.isalpha() 方法来检查字符是否为字母
# 
def count_letters(s):s = s.lower()letter_count = {}for char in s:# 过滤非字母字符if char.isalpha():if char in letter_count:letter_count[char] += 1else:letter_count[char] = 1# 不同字母出现的次数for letter, count in letter_count.items():print(f"字母 '{letter}' 出现了 {count} 次")return letter_count 

8、判断年份是否为闰年

# 闰年规则:
# 8.1、能被4整除但不能被100整除的年份是
# 8.2、能被400整除的年份是闰年
# 8.3、其它年份不是闰年def is_leap_year(year):if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):print(f'{year} 是闰年')return Trueelse:   print(f'{year} 不是闰年')return Falseis_leap_year(2020) # 2020 是闰年

9、计算列表中所有数字的平均值

def calculate_average(numbers):if len(numbers) == 0:return 0total = sum(numbers)average = total / len(numbers)return average
# 例如列表 avg_numbers
avg_numbers = [10, 20, 30, 40, 50]
avg = calculate_average(avg_numbers)
print(f'平均值是: {avg}')  # 输出: 平均值是: 30.0

10、生成指定范围内的随机数列表

# 使用 random 模块
# random.randint(a, b) 返回 a 和 b 之间的随机整数,包括 a 和 b 本身
# 生成 count 个在 start 和 end 之间的随机数列表import randomdef generate_random_numbers(count, start, end):random_numbers = [random.randint(start, end) for _ in range(count)]return random_numbers# 例如,生成 5 个在 1 到 100 之间的随机数
random_list = generate_random_numbers(5, 1, 100)
print(f'5个随机数列表: {random_list}')

11、使用 推导式 生成 1-10 的平方 一个列表

squared_numbers = [x**2 for x in range(1, 11)]
print(f'平方列表: {squared_numbers}')

12、计算 1- 100 所有整数的和

# 12.1 使用等差数列 n * (n + 1) / 2 
# 12.2 使用 内置函数 sum() 和 range()def sum_1_to_100():# 方法一:等差数列公式n = 100total1 = n * (n + 1) // 2print(f'方法一,1到100的和是: {total1}')# 方法二:使用 sum() 和 range()total2 = sum(range(1, 101))print(f'方法二,1到100的和是: {total2}')
sum_1_to_100()

13、获取字典中的 最大值 和 最小值 以及对应的键

def dict_max_min(d):if not d:return None, None, None, None# 通过 key 参数指定根据值进行比较max_key = max(d, key=d.get)min_key = min(d, key=d.get)max_value = d[max_key]min_value = d[min_key]print(f'最大值是: {max_value}, 对应的键是: {max_key}')print(f'最小值是: {min_value}, 对应的键是: {min_key}')return max_key, max_value, min_key, min_value

14、求列表中的 中位数字

# 中位数 是指将一个有序列表分成两半时的中间值
# 如果列表的长度是奇数,中位数是中间的那个数
# 如果列表的长度是偶数,中位数是中间两个数的平均值def calculate_median(numbers):# 首先对列表进行排序sorted_numbers = sorted(numbers)n = len(sorted_numbers)# 计算中位数的索引mid = n // 2# 根据列表长度的奇偶性计算中位数if n % 2 == 0:# 偶数长度,取中间两个数的平均值median = (sorted_numbers[mid - 1] + sorted_numbers[mid]) / 2else:median = sorted_numbers[mid]print(f'中位数是: {median}')return median

15、查找列表中的第二大数字

# 方法一:排序后获取第二大数字 
# 通过 sort() 函数 或者 sorted() 函数对列表进行排序
def find_second_largest(numbers):unique_numbers = list(set(numbers))  # 去重if len(unique_numbers) < 2:return None  # 如果没有第二大数字,返回 Noneunique_numbers.sort(reverse=True)  # 降序排序second_largest = unique_numbers[1]print(f'第二大数字是: {second_largest}')return second_largest
# 方法二:
# 使用 max() 内置函数获取最大数字,然后移除最大数字,再次使用 max() 获取第二大数字
def find_second_largest_v2(numbers):if len(numbers) < 2:return None  # 如果没有第二大数字,返回 Nonefirst_largest = max(numbers)numbers.remove(first_largest)second_largest = max(numbers)print(f'第二大数字是: {second_largest}')return second_largest
http://www.dtcms.com/a/516582.html

相关文章:

  • 视频分析软件识别人像特征
  • Qt:Qt下载慢的解决方案
  • 南昌做公司网站哪家好做一款app需要多少钱费用
  • 怪兽网站模板网站运营谁都可以做吗
  • 金戈博爱联盟游资团队
  • 浏览器插件爬虫,原创,告别爬虫解密
  • 台式机网站建设福州搜索排名提升
  • 【开发指南】全志系列核心板开发过程中的常见问题及排查策略
  • 做搜狗pc网站优化哪些调查网站可以做问卷赚钱
  • 墙绘做网站哪家好长沙网红打卡景点
  • SignalR 底层原理详解
  • 企业应该如何进行网站推广济南建设大厦
  • Java面试题-两个对象相等equals相等吗,equals相等对象相等吗
  • 网站建设汇报材料链接买卖
  • 外贸型网站该如何推广甘肃网络公司网站
  • 外国做的福利小视频在线观看网站网站建设现状调查研究
  • DevEco Studio与Web联合开发:打造鸿蒙混合应用的全景指南
  • 动力网站网站关键词优化的步骤和过程
  • Kotlin 高阶函数在回调设计中的最佳实践
  • gh-ost菜鸟教程
  • 湖南微信网站公司网页显示网站正在建设中怎么做
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
  • 网站建设与管理培训总结网站规划有前途吗
  • 下载空excel和导出带有查询数据的excel的区别
  • 智元灵犀X1-本体通讯架构分析2:CAN/FD总线性能优化分析
  • 深圳最简单的网站建设wordpress中文名字注册
  • 软件开发的创意提案详解
  • 外贸建站 知乎深圳建设工程交易平台
  • Spring Cloud - Spring Cloud 负载均衡(Ribbon 负载均衡概述、Ribbon 使用)
  • 行业网站运营网站上可以做文字链接么