Python实现约瑟夫环与日期计算及验证码生成详解

Chloe
Chloe
发布时间:2026-10-13| 4人浏览过
原创

本文详细解析三个Python编程实例:通过列表模拟解决约瑟夫环问题,确定基督徒与非基督徒的初始站位;利用random模块生成指定长度的字母数字混合验证码;以及通过循环累加月份天数计算指定日期在一年中的具体天数,包含闰年判断逻辑。

约瑟夫环问题求解

1、约瑟夫环问题

《幸运的基督徒》

场景设定为15名基督徒与15名非基督徒在海上遭遇险情,为保全部分人员,需将其中15人投入海中。解决方案是众人围成一圈,从指定人员开始报数,报到数字9者被投入海中,随后由下一人重新从1开始报数,此过程持续直至15人被移除。据称在上帝庇佑下,15名基督徒全部幸存,现需推算初始站位中哪些位置属于基督徒,哪些属于非基督徒。


def main():
 '''
 先用列表中每个数字代表每个人,然后通过循环替换列表中的数字
 用@代表基督徒,用__代表非基督徒
 '''
 people = [x for x in range(0,30)]
 people_ = [y for y in range(0,30)]
 i = 0
 j = 9
 while i<15 : 
  del people_[j]
  j += 9
  i += 1
  if j > len(people_):
   j = j - len(people_)
 for i in people_:
  for x in people:
   if i == x:
    people[people.index(x)] = '@'
 for j in range(30):
  if people[j] != '@':
   people[people.index(j)] = '__'
 print(people)
main()

生成混合验证码

2、生成指定位数字母和数字混合验证码


import random
def generate_code(code_len=4):
 '''
 生成指定位数的验证码
 用code_len指定位数
 '''
 code = ''
 string = '1234567890qwertyuiopasdfghjklzxcvbnm'
 for _ in range(code_len):
  code += string[random.randint(0,26)]
 print(code)
 return code
 
generate_code()

计算日期在年中的天数

3、输入具体日期


def which_day(year,month,date):
 '''
 对应输入年份,月份,还有具体的日
 可以计算出这一日是这一年的第多少天
 year代表年,month代表月份,date代表具体日子
 '''
 day = 0
 for i in range(1,month + 1):
  if i < 9:
   if i % 2 == 0:
    day += 31
   else:
    day += 30
  else:
   if i % 2 == 0:
    day += 30
   else:
    day += 31
 if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
  day -= 1
 else:
  day -= 2
 print('您所求的这一天是那一年的第'+str(day)+'天')
which_day(1950,11,28)

总结

上述内容介绍了利用Python生成验证码及计算具体日期为一年中第几天的实例代码,旨在提供实用参考。若读者有任何疑问,欢迎留言,小编将及时回复。感谢对本站的支持!若本文对您有帮助,欢迎转载,请注明出处,谢谢!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。