綠盟杯決賽第一階段 python 題解

2021-08-29 22:58:33 字數 4117 閱讀 3938

挑戰任務

本關挑戰任務是對乙個陣列進行排序,排序需要遵守一些規則,比如給出一組資料5,

1,4,

2,3,我們從第二個數字開始,這個數字是

1,我們的任務是看看

1有沒有在正確的位置,我們的做法是和這個數字左邊的數字來比,因此我們比較1和

5,1比

5小,所以交換1和

5,原來的排列就變成了1,

5,4,

2,3。

接下來我們看第三個數字有沒有在正確的位置。這個數字是

4,它的左邊數字是5,

4比5小,所以我們將4和

5交換,排列變成了1,

4,5,

2,3我們必須繼續看

4有沒有在正確的位置,

4的左邊是1,

1比4小,

4就維持不動了。

按照這種規則依次給整個陣列排序,並將排序過程列印到控制台。

程式設計要求

請在右側編輯器中填充**,補全

sort(xlist)

函式,實現指定的排序功能,並列印出排序過程,函式引數說明如下:

xlist

:待排序的陣列

測試說明

樣例1:

輸入:

1 5 4 3 2 6

輸出:樣例2:

輸入:

2 8 7 1 3 5 6 4

輸出:開始挑戰吧,祝你成功!

#!/usr/bin/env python

# -*- coding: utf-8 -*-

x = input()

xlist = x.split(' ')

#print(xlist)

for i in range(0,len(xlist)):

xlist[i] = int(xlist[i])

def sort(xlist):

length = len(xlist)

for i in range(1, length):

x = xlist[i]

for j in range(i, -1, -1):

# j為當前位置,試探j-1位置

if x < xlist[j - 1]:

xlist[j] = xlist[j - 1]

else:

# 位置確定為j

break

xlist[j] = x

print(' '.join(map(str, xlist)),end='')

print(' ')

sort(xlist)

挑戰任務小明在高新區上班,因為是產業園區,公司很多,日常耗電量非常大,所以電力局決定在今年7、8月份對該區域拉閘斷電,電力局決定從7月1日起,然後隔一天到7月3日再停電,再隔兩天到7月6日停電,依次下去每次都比上一次長一天。

因為如果停電就意味著不用上班,所以小明他們公司決定7,8月的週末就不休息了,小明現在很想知道他在乙個時間段內可以有多少天不用上班,請幫小明來計算一下吧。

例如:輸入開始日期:

7-1輸入結束日期:

7-4應該輸出:2

程式設計要求

請在右側編輯器中填充**,根據輸入的開始日期和結束日期來計算小明不用上班的天數(日期限定在7、8月份),將天數作為函式

getdaynum(starttime,endtime)

的返回值返回;函式引數說明如下:

starttime

:開始日期

endtime

:結束日期

測試說明

樣例1

輸入:7-1

7-4

輸出:2

樣例2

輸入:7-4

7-11

輸出:3

開始你的任務吧,祝你成功!

# -*- coding: utf-8 -*-

# 從鍵盤獲取字串日期

starttime = '7-1'

endtime = '8-31'

def daytoint(time):

if(time[0] == '7'):

time = int(time[2:])-1

if(time[0] == '8'):

time = int(time[2:])+30

return time

def getdaynum(starttime, endtime):

standard =

for i in range(1,11):

for j in range(i):

# print(len(standard[0:61]))

starttime = daytoint(starttime)

endtime = daytoint(endtime)

new_list = standard[starttime:endtime+1]

print(new_list)

count = len([i for i in new_list if i==0])

print(count)

getdaynum(starttime, endtime)

挑戰任務小明在高新區上班,因為是產業園區,公司很多,日常耗電量非常大,所以電力局決定在今年7、8、9月份對該區域拉閘斷電,電力局決定從7月1日起開始停電,然後隔一天到7月3日再停電,再隔兩天到7月6日停電,依次下去每次停電時間都比上一次長一天。

因為如果停電就意味著不用上班,所以小明他們公司決定7,8、9月的週末就不休息了,小明現在很想知道在7、8、9月份中的某一天是否是休息日,請編寫程式告訴他吧。

例如:輸入日期:

7-1應該輸出:

true

程式設計要求

請在右側編輯器中填充**,補全

ispowercut(inputdate)

函式,根據輸入的日期來判斷小明是否不用上班(日期限定在7、8、9月份)將結果作為函式的返回值返回,休息則返回

true

,上班則返回

false

。函式引數說明如下:

inputdate

:輸入的日期。

測試說明

樣例1

輸入:7-1

輸出:true

樣例2

輸入:7-2

輸出:false

開始你的任務吧,祝你成功!

#!/usr/bin/env python

# -*- coding: utf-8 -*-

inputdate = '9-30'

def daytoint(time):

if(time[0] == '7'):

time = int(time[2:])-1

if(time[0] == '8'):

time = int(time[2:])+30

if(time[0] == '9'):

time = int(time[2:])+61

return time

def ispowercut(inputdate):

standard =

for i in range(1,14):

for j in range(i):

#print(len(standard))

time = daytoint(inputdate)

if standard[time] == 1:

return 'false'

if standard[time] == 0:

return 'true'

print(ispowercut(inputdate))

注:我沒有考慮生成的列表長度等於幾個月的日期長度,並不精確,可以考慮改善一

python複習第一階段

linux基礎命令 cd 切換目錄和路徑 pwd 檢視當前路徑 clear 清屏 mv 移動 剪下 重新命名檔案 ls 檢視當前資料夾下的內容 ls a 顯示指定目錄下所有子目錄和檔案,包括隱藏檔案 ls l 以列表方式顯示檔案的詳細資訊 touch 建立檔案 mkdir 建立目錄 mkdir p ...

第一階段練習

1 輸入乙個整數,把該整數分別按照八進位制 十進位制 十六進製制形式輸出 include stdio.h main 2 輸入乙個小數 整數部分3位 小數部分5位 把該小數分別按照以下格式輸出 小數部分4位寬度,整個數字8位寬度 小數部分3位寬度,整個數字9位寬度,空白部分使用0填充 include ...

第一階段 2015 12 2016 03

距離上一次寫部落格,大半年就過去了,這半年,都做了些什麼呢,生活又都有些什麼變化呢。2015的下半年是收穫的半年吧。第二,學ios的過程中結識了新的朋友,耳機哥,是很棒的一件事。第三,得到了乙份很美滿的愛情。最終在一起,還好沒錯過。第四,開始正視自己的不足,不再逃避,開始認真製作簡歷,並開始找工作,...