python簡單試題4

( ps : 題目中用到的一些random函數在最後末尾處有介紹) app

1,在屏幕上顯示跑馬燈文字dom

import os # 調用os模塊
import time # 調用時間模塊
def main():
    content = '河南農大歡迎您!!!!' # 賦值字符串
    while True:
       os.system("cls")  # os.system("clear") # 清屏操做
       print(content)
       time.sleep(0.2) # 延遲200毫秒
       content = content[1:] + content[0] # 切片處理

if __name__ == '__main__': # 腳本運行程序
    main()

2,設計驗證碼函數

import random # 調用隨機數模塊
def generate_code(code_len = 4):
    all_chars = '0123456789abcdefjhijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    # all_chars = '今天是藍橋杯國賽的日子'
    # 能夠自行設置你想要的字符
    last_pos = len(all_chars) - 1 # 索引是從零開始的,故要將長度減一
    code = ''
    for _ in range(code_len): # 進行遍歷循環
        index = random.randint(0,last_pos) # 產生隨機數字
        code += all_chars[index] # 取出索引爲index的字符
    return code
print(generate_code())

3,求列表第一大和第二大元素spa

def max2(num):
    m1,m2 = (num[0],num[1]) if num[0] > num[1] else (num[1],num[0])
    # 判斷 num[0] 和 num[1] 的大小,將大值賦值給m1
    for i in range(2,len(num)): # 進行遍歷
        if num[i] > m2: # 判斷是否大於m2
            if num[i] > m1: # 判斷是否大於m1
                m1,m2 = num[i],m1 # 進行賦值操做
            else :
                m2 = num[i]
    return m1,m2 # 返回一個元組
print(max2([1,5,3,6,9,15,5,2,3,-9,-8]))

4,計算指定的年月日是這一年的第幾天設計

def is_leap_year(year): # 判斷是否爲閏年
    flag = True if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 else False
    # 閏年判斷方式:年份能被四整除並且不能被100整除,年份能被四百整除,兩個條件符合其一都爲閏年
    return flag # 返回一個布爾值
def date(year,month,day):
    day_sum = 0
    date1 = [[31,28,31,30,31,30,31,31,30,31,30,31],[31,29,31,30,31,30,31,31,30,31,30,31]] 
    # 定義列表,分別爲閏年,平年每一個月多少天
    for i in range(len(date1[is_leap_year(year)])): # 遍歷 布爾值能夠替換成0,1
        if i < month-1: #  索引從0開始
            day_sum += date1[is_leap_year(year)][i]
        else:
            day_sum += day
            break
    return day_sum
print(date(2019,5,25))
print(date(2019,2,1))

5,雙色號選球問題code

from random import randrange,randint,sample
# 導入random模塊下的幾個函數
def display(balls):
    for index,ball in enumerate(balls):
        # enumerate:給元素前加上索引構成每個元素都是元組
        if index == len(balls) - 1: # 判斷是否爲最後一個元素
            print('|',end=" ")
        print("%02d" % ball,end=' ') # %02d:輸出整數類型,並以兩位數輸出,01,29,03
    print() # 輸出換行符

def random_select():
    red_balls = [x for x in range(1,34)] # 生成一個列表
    selected_balls = []
    selected_balls = sample(red_balls,6) # 從red_balls中隨機挑選六個元素並以列表的形式返回
    selected_balls.sort() # 給列表進行排序
    selected_balls.append(randint(1,16)) # 添加一個元素
    return selected_balls
def main():
    n = int(input("請下注:"))
    for _ in range(n):
        display(random_select())

if __name__ == "__main__":
    main()

6,約瑟夫環問題orm

有15個基督徒和15個非基督徒在海上遇險,爲了能讓一部分人活下來不得不將
其中15我的扔到海里面去,有我的想了個辦法就是你們圍成一個圈,由某我的開
始從1報數,報到9的人就扔到海里面,他後面的人接着從1開始報數,報到9的人
繼續扔到海里面,直到扔掉15我的。因爲上帝的保佑,15個基督徒都倖免於難,問這
些人最開始是怎麼站的,哪些位置是基督徒哪些位置是非基督徒
def main():
    person = [True] * 30 #生成一個列表,列表重含有三十個True 假定都爲基督教人
    index,count,number = 0,0,0 # 給index,count,number 賦值0
    while count < 15:
        if person[index] == True: 
            number += 1 #喊話數字加一
            if number == 9: # 當數字爲九時
                person[index] = False # 此人爲非基督教
                count += 1 # 人數加一
                number = 0 # 重新開始喊話
        index += 1 # 不管是否爲基督教信徒,索引值都要加一
        index %= 30 # 索引值不能夠超過29
    for i in person:
        print("",end = ' ') if i else print("",end = ' ') # 進行輸出
if __name__ == "__main__":
    main()

7,random模塊簡單介紹blog

import random
print(random.random()) #產生隨機數,從0到1的浮點數
print(random.uniform(1,4)) # 產生從1到4的浮點數
print(random.randint(1,6)) #產生從1到6的浮點數
print(random.randrange(10,100,5)) # 從10到100中五的倍數的數字選出一個
print(random.choice([1,2,3,4,5,6])) # 從隊列中選出一個元素
list1 = ['a','b','c','d','e','f','g','h']
random.shuffle(list1) # 將列表亂序排列
print(list1)
a = random.sample([12,3,4,4,5,6,6,67,7,7,56,6,6,6,6,6,6,6],5) # 從列表中選出五個元素組成列表返回
print(a)

試題來源於駱昊大神排序

相關文章
相關標籤/搜索