1. 程式人生 > 程式設計 >Python生成驗證碼、計算具體日期是一年中的第幾天例項程式碼詳解

Python生成驗證碼、計算具體日期是一年中的第幾天例項程式碼詳解

1、約瑟夫環問題

《幸運的基督徒》

有15個基督徒和15個非基督徒在海上遇險,為了能讓一部分人活下來不得不將其中15個人扔到海里面去,有個人想了個辦法就是大家圍成一個圈,由某個人開始從1報數,報到9的人就扔到海里面,他後面的人接著從1開始報數,報到9的人繼續扔到海里面,直到扔掉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生成驗證碼、計算具體日期是一年中的第幾天例項程式碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!