主頁 > 後端開發 > 華中農業大學python實驗題

華中農業大學python實驗題

2020-12-17 11:49:02 後端開發

知識匯總

哈嘍,大家好,我來做一個引流啦啦啦,本人總結了華農python期末部分常見考點,并且帶有近兩次的python編程考試題和參考代碼,
個人認為,不論是對大家期末復習還是日常學習,都會有所幫助,
如有需要,請點擊這里跳轉
其實要是問的話,我為什么搞這些呢?會賺錢?那必然不是(除非有人來給我打賞?)
就是開源思想嘛,開源可以修正自己的錯誤,而且我的學習都是通過開源資料學習的,我也想把自己的所學回饋給大家,僅此而已,謝謝,

前言

很多同學在剛開始學習編程的時候,拿到一個題經常會無從下手,其實編程就是考察的邏輯,當你遇到一個問題的時候,你首先要做的就是去思考解決這個問題的程序,在大腦中有了個大致思路后再去敲代碼,當發現提交上去之后不能全對,就看看代碼哪里有邏輯問題,(不要總是懷疑系統出問題了,,)

在這里,我將一些常見的程式參考代碼放在了下面,旨在為大家提供思路,希望大家抱著借鑒的心理來學習,強烈建議大家不要抄襲,因為itc有查重系統 ,會有風險的哦,

在此,很感謝2019年與我一同上課的同學給我提供了更廣闊的思維,感謝教授老師的諄諄教誨,這將是我一生最寶貴的財富,

代碼基本都是沒問題的,可以直接提交運行,請不要糾結演算法復雜度,因為我當時沒想很多,歡迎大家提供高效的程式

題目只是我寫過的,如果有什么遺漏的題目請在評論區聯系我,我會及時補充!

直接使用Ctrl + F 進行搜索題目名稱即可


復雜資料型別練手題

出現最多次的整數

輸入一組無序的整數,編程輸出其中出現次數最多的整數及其出現次數,

_ = input()
a = input().split()
# 轉化為數值
a = [eval(i) for i in a]
# 創建字典統計次數
mydict = {}
# 做回圈統計次數
for i in a:
    mydict[i] = mydict.get(i,0)+1
# 得到最多次數
max_times = max(mydict.values())
# 將鍵值對轉化為串列,里面的元素是鍵值對的元組型別
data = list(mydict.items())
# 對資料進行排序,排序規則沒有指定,默認是對元組的第一個元素從小到大排序
data.sort()
# 輸出資料
for i in data:
    # 判斷次數是不是最多的那個
    if i[1] == max_times:
        print(i[0],i[1])

求折點

給定n個整數表示一個商店連續n天的銷售量,如果某天之前銷售量在增長,而后一天銷售量減少,則稱這一天為折點,反過來如果之前銷售量減少而后一天銷售量增長,也稱這一天為折點,其他的天都不是折點,如下圖中,第3天和第6天是折點,

在這里插入圖片描述

給定n個整數a1, a2, …, an表示銷售量,請計算出這些天總共有多少個折點,

為了減少歧義,我們給定的資料保證:在這n天中相鄰兩天的銷售量總是不同的,即ai-1≠ai,注意,如果兩天不相鄰,銷售量可能相同,

_ = input()
a = input().split()  # 輸入資料
a = [eval(i) for i in a]  # 字串轉化為數值
count = 0  # 最終結果的計數(輸出的第一行)
ans = []  # 用來存放答案
for i in range(1,len(a)-1):  # 不回圈最左邊和最右邊的數值,因為只有一個數不能比較
    if a[i]<a[i+1] and a[i]<a[i-1]:  # 判斷是不是極小值,題目說了,不用加等號
        ans.append(str(i+1)+" low")
        count += 1
    if a[i]>a[i+1] and a[i]>a[i-1]:  # 判斷是不是極大值,題目說了,不用加等號
        ans.append(str(i+1)+" high")
        count += 1
print(count)
[print(i) for i in ans]

讀者第幾次出現

濤濤最近要負責圖書館的管理作業,需要記錄下每天讀者的到訪情況,每位讀者有一個編號,每條記錄用讀者的編號來表示,給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現,

'''
有條件的同學可以使用動態規劃做
'''
_ = input()
a = input()
a = a.split()
mydict = {i:0 for i in a}  # 創建一個字典,用來統計第幾次出現,將次數放在ans串列中
ans = []  # 創建一個串列,和輸入的資料一一對應
for i in a:
    mydict[i]+=1  # 元素開始出現啦
    ans.append(str(mydict[i]))  # 將第幾次出現放在字典里
print(' '.join(ans))




Hello World程式

print("Hello World!")

變數

用變數m存盤100,用變數n存盤13.14,輸出變數m,n的值,

m=100
n=13.14
print(m)
print(n)

計算圓周長和圓面積

輸入圓的半徑r,計算圓周長和圓面積,保留2位小數

import math
r=float(input("Please enter radium:"))
S=math.pi*r*r
C=2*math.pi*r
print("Circumference is {:.2f}".format (C))
print("Round area is {:.2f}".format (S))

溫度轉換程式

在溫度刻畫的不同體系中,攝氏度以1標準大氣壓下水的結冰點為0度,沸點為100度,華氏度以1標準大氣壓下水的結冰點為32度,沸點為212度,如何利用程式輔助進行攝氏度和華氏度之間的轉換,結果保留1位小數,

#Temperature
val=input("What is the temperature?")
if val[-1] in ["C","c"]:      #①這里的冒號有什么用?   ②為什么這一行寫val[0:-1]就不對?
    f=1.8*float(val[0:-1])+32  
    print("The converted temperature is {:.1f}F".format(f))
elif val[-1] in ["F","f"]:
    c=(float(val[0:-1])-32)/1.8   #為什么這一行寫val[-1]就不對?
    print("The converted temperature is {:.1f}C".format(c))
else:
    print("Input error!")

函式判斷密碼級別

問題描述】

輸入一個表示密碼的字串,撰寫程式判斷密碼的安全級別為低級密碼、中級密碼和高級密碼,

低級密碼要求:

  1. 密碼由單純的數字或字母組成

  2. 密碼長度小于等于8位

中級密碼要求:

  1. 密碼必須由數字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合

  2. 密碼長度不能低于8位

高級密碼要求:

  1. 密碼必須由數字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三種組合

  2. 密碼只能由字母開頭

  3. 密碼長度不能低于16位

撰寫函式判斷輸入的密碼的安全級別,如果為低級密碼,則回傳"A”;如果如果為中級密碼,則回傳“B”;如果為高級密碼,則回傳“C”

def ishave(s,limit): 判斷字串s中,是否存在limit中任意字符,如果存在,回傳1,否則回傳0

def typenum(psw): 判斷psw中存在多少種類別的字符(類別三種,數字,字母,特殊字符 ),回傳類別的數量

def safe(psw): 判斷psw的安全性,回傳安全級別對應的字符

def ishave(s,limit):
    for i in s:
        if i in limit:
            return 1
    return 0

def typenum(psw):
    digit="1234567890"
    al="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    st="\~!@#$%^&*()_=-/,.?<>;:[]{}|"
    m=ishave(psw,digit)+ishave(psw,al)+ishave(psw,st)
    return m

def safe(psw):
    a=len(psw)
    # print(typenum(psw))
    if(a>=16 and typenum(psw)==3 and ("a"<=psw[0]<="z" or "A"<=psw[0]<="Z")):
        return "C"
    else:
        if a>=8 and typenum(psw)>=2:
            return 'B'
        else:
            return 'A'
x=input()
print(safe(x))

根據用戶輸入的內容,輸出相應的結果

根據用戶輸入的內容,輸出相應的結果

a=input("name:")
b=input("words:")
print('%s, I must tell you that %s.'%(a,b))

撰寫程式計算下列數學運算式的結果并輸出

撰寫程式計算下列數學運算式的結果并輸出,小數點后保留3位,右對齊占9個列印位置,

from math import *
x=sqrt(((3**4+5*6**7)/8))
print('%9.3f'%x)

幸運數字

提示輸入用戶名,并隨機生成一個幸運數字(0-9),輸出結果"用戶某某某你的幸運數字是X",(import random 呼叫randint和seed函式)

import random
random.seed(10)
a=input("name:")
b=random.randint(0,9)
print("%s, Your lucky number is %d."%(a,b))

3位整數變換1

x=eval(input())
a=x//100
b=(x-a*100)//10
c=(x-a*100)%10
d=c*100+b*10+a
print(d)

ISBN校驗碼判斷

s=input()
total=0
sr=s.replace('-','')
for i in range(1,13):
    if i%2==1:
        total=total+int(sr[i-1])
    else:
        total=total+int(sr[i-1])*3
id=10-total%10
if id==10:
    id=0
if str(id)==s[-1]:
    print('Right')
else:
    print(s[0:16]+str(id))

輸入整數x,y,z,判斷x3+y3+z^3和1000的關系

輸入整數x,y,z,若x3+y3+z3>1000,則輸出x3+y3+z3-1000的結果,否則輸出三個數之和,

(x,y,z)=eval(input("please input three numbers:"))
t=x**3+y**3+z**3
if t>1000:
    print(t-1000)
elif t<1000:
    print(x+y+z)

判斷一個整數是否能被7或11整除

程式的功能是判斷一個整數是否能被7或11整除,若能被7或11整除,則輸出"Yes",否則輸出"No",請補充程式,

a=eval(input())
if a%11==0 or a%7==0 :
    print("number:Yes")
else:
    print("number:No")

汽車價格競猜,單位萬元,

寫一道程式,輸入一個整整(單位萬元)來猜汽車價格,代碼中設定汽車價格為25,根據所猜價格分別對應猜對了,猜高了,猜低了三種輸出結果,

a=eval(input())
if a>25:
    print("price:high")
elif a==25:
    print("price:bingo")
else:
    print("price:low")

判斷三角形

輸入三角形三條邊的值,判斷能否構建三角形?

(a,b,c)=eval(input("please input three numbers:"))
if a+b>c and a+c>b and b+c>a:
    print("true")
else:
    print("false")

合法結婚年齡

我國的婚姻法規定,男性22歲為合法結婚年齡,女性20歲為合法結婚年齡,撰寫程式判斷一個人是否到了合法結婚年齡,并輸出判斷結果:“Yes” 或 “No”或"Error"

S=input("Sex(F or M):")
A=eval(input("Age(1-120):"))
if S in ["F"]:
    if 20<=A<=120:
        print("Yes")
    elif 1<=A<=20 :
        print("No")
    else:
        print("Error")
elif S in ["M"]:
    if 22<=A<=120:
        print("Yes")
    elif 1<=A<=22 :
        print("No")
    else:
        print("Error")
else: 
    print("Error")

通過年份和月份,求該月天數

輸入日期的年份和月份,求該月有多少天,提示:對于月份為1、3、5、7、8、10、12的月份天數為31,月份為4、6、9、11的月份天數為30,月份為2時要結合年份考慮閏年的情況,

(x,y)=eval(input("year,month:"))
if y in [1,3,5,7,8,10,12]:
    print("31")
elif y in [4,6,9,11]:
    print("30")
else:
    if x%4==0 and x%100!=0 or x%400==0:
        print("29")
    else:
        print("28")

隨機密碼

(1)使用 random 庫,采用 10作為亂數種子,?????????????????????????????????
提示:random.seed(10)
(2)密碼允許字符如下:
???????s=“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”
(3)密碼長度為輸入的數字,

import random
random.seed(10)
s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
length = eval(input())
ans = ''
for i in range(length):
    ans+=random.choice(s)
print(ans)

高校型別統計

串列 ls 中存盤了我國 39 所 985 高校所對應的學校型別,請以這個串列為資料變數,撰寫 代碼,統計輸出各型別的數量,要求按類別字母順序輸出,

ls = [“Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”, “Comprehensive”, \

“Comprehensive”, “Comprehensive”, “Comprehensive”, “Comprehensive”, “Comprehensive”,\

“Normal”, “Polytechnic”, “Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”, \

“Comprehensive”, “Comprehensive”, “Comprehensive”,“Polytechnic”,\

“Polytechnic”, “Polytechnic”, “Polytechnic”, “Normal”, “Comprehensive”, \

“Agricultural and Forestry”, “Polytechnic”, “Comprehensive”, “Polytechnic”, “Polytechnic”, \

“Polytechnic”, “Comprehensive”, “Polytechnic”, “Comprehensive”, “Comprehensive”, \

“Polytechnic”, “Agricultural and Forestry”, “Nationalities”, “Military”]

ls = ["Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive", "Comprehensive", \

 "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive", "Comprehensive",\

"Normal", "Polytechnic", "Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive", \

"Comprehensive", "Comprehensive", "Comprehensive","Polytechnic",\

 "Polytechnic", "Polytechnic", "Polytechnic", "Normal", "Comprehensive", \

 "Agricultural and Forestry", "Polytechnic", "Comprehensive", "Polytechnic", "Polytechnic", \

 "Polytechnic", "Comprehensive", "Polytechnic", "Comprehensive", "Comprehensive", \

 "Polytechnic", "Agricultural and Forestry", "Nationalities", "Military"]
mydict = {}
for i in ls:
    mydict[i] = mydict.get(i,0)+1
data = list(mydict.items())
data.sort()
[print(i[0],i[1]) for i in data]

適婚問題!

輸入年齡和性別,判斷你當前的個人情況!男性小于30歲顯示:young,30歲到36歲之間顯示:marriageable age,大于36歲顯示:old,

a=input("sex(F or M):")
b=eval(input("age:"))
if a=="F" or a=="f":
    if b<25:
        print("young")
    elif 25<=b<=30:
        print("marriageable age")
    else:
        print("old")
elif a=="M" or a=="m":
    if b<30:
        print("young")
    elif 30<=b<=36:
        print("marriageable age")
    else:
        print("old")
else:
    print("wrong")

解密碼

注:本題還未提交測驗,,,
在這里插入圖片描述

s = input()
newstr = ''
for i in s:
    if 'A'<=i<='Z':
        position = ord(i) - 65
        new = chr(26-position-1 + 65)
        newstr += new
    elif 'a'<=i<='z':
        position = ord(i) - 97
        new = chr(26-position-1 + 97)
        newstr += new
    else:
        newstr += i
print(s)
print(newstr)

11整除問題改

注:本題還未提交測驗,,,
在這里插入圖片描述

x = input('Please input a integer:')[::-1]
odd = 0  # 奇數
even = 0  # 偶數
for i in range(1,len(x)+1):
    if i%2==1:
        odd += int(x[i-1])
    else:
        even += int(x[i-1])
print(odd)
print(even)
if (even - odd)%11 == 0:
    print('TRUE')
else:
    print('FALSE')

回圈編程題

已知y=1+1/3+1/5+…+1/2n-1:求y<3時的最大n值以及最大n值對應的y值(y值保留小數點后2位),

n=0
y=0
while y<=3:
   n=n+1
   y=y+1/(2*n-1)
y = y-1/(2*n-1)
n -= 1
print("n=%.d,y=%.2f"%(n,y))

小玉游泳

小玉開心的在游泳,可是她很快難過的發現,自己的力氣不夠,游泳好累哦,已知小玉第一步能游2米,可是隨著越來越累,力氣越來越小,她接下來的每一步都只能游出上一步距離的98%,現在小玉想知道,如果要游到距離x米的地方,她需要游多少步呢,請你編程解決這個問題,

a=eval(input())
b=2
n=1
while b<a:
    b=b+(0.98**n)*2
    n=n+1
print(n)

密碼正確嗎

試撰寫一個程式判斷6位密碼是否正確,若密碼正確輸出right,密碼不正確輸出wrong,如果輸入的密碼有非數字字符則輸出wrong(用字串的isdigit()方法判斷是否是純數字字串),密碼規則是: 第i位數字是第i-1位數字加1后的3次方的個位數( 2<=i<=6),
感謝朱*星同學反饋問題,并幫助我進行資料測驗

a=input()
if a.isdigit():
    for n in range(1,6):
        if eval(a[n])!=(eval(a[n-1])+1)**3%10:
            print("wrong")
            break
    else:
        print("right")
else:
    print("wrong")

判斷一個3位數是否是水仙花數,

輸入一個三位正整數abc,如果滿足a3+b3+c^3=abc,則該數是水仙花數,例如123不等于1+8+27所以123不是水仙花數,

a=input('please input a three-digit ')
if len(a)==3:
    b=eval(a[0])**3+eval(a[1])**3+eval(a[2])**3
    if eval(a)==b:
        print('number:true')
    else:
        print('number:false')
else:
    print('number:error')

錄取研究生

某高校錄取研究生的要求是,每門課成績不低于60分,總成績不低于340分,370分以下為自費,編一程式實作輸入一個學生的四門課成績,試判斷該生為該校錄取的情況(沒有錄取“not”、自費“pay”、公費“free”三種情況),

(a,b,c,d)=eval(input('four scores:'))
sum=a+b+c+d
if a<60 or b<60 or c<60 or d<60 or sum<340:
    print('not')
else:
    if sum>=370:
        print('free')
    else:
        print('pay')

統計一共出現了多少個3

輸入任意一個正整數,從1開始到這個數字的奇數序列里,統計一共出現了多少個3,

撰寫函式sumThree(),實作功能是,輸入一個正整數,回傳該數中3出現的個數,

def sumThree(n):
    sum=0
    for i in range(1,int(n)+1):
        if i%2!=0:
            sum+=str(i).count("3")
    return sum
x=input("number:")
print(sumThree(x))

征友

def sushu(n):
    for i in range(2,n//2):
        if n%i==0:
            return False
    return True
a=int(input())
for i in range(2,a):
    if a%i==0:
        if sushu(i) and sushu(a%i):
            print("JH%d%d"%(a/i,i))
            break
else:
    print("error")

韓信點兵

有一群士兵,人數不超過n,韓信將其按照一行3人排隊,余2人;按照一行5人排隊,余1人;按照一行7人排隊,剛好排成若干行,撰寫程式 計算士兵的人數,

n=eval(input())
i=1
for i in range(1,n+1):
    if i%3==2 and i%5==1 and i%7==0:
        print(i,end=' ')
    i=i+1

翻譯密碼

翻譯密碼,為了保密,常不采用明文,而用密文,即按一定規則將字符轉換為另一字符,收報人則按相反的規律轉換得到原來的字符,本程式規則為:字母ascii碼加5,其他字符不變,對原文進行加密,并顯示密文,字母的最后5個加5不是字母了,處理規則為回圈成前5個,比如“X”的密文為“C”,

a=input('please input text:')
for S1 in a:
    if 65<=ord(S1)<=85 or 97<=ord(S1)<=117:
        n=ord(S1)+5
        new=chr(n)
    elif 86<=ord(S1)<=90 or 118<=ord(S1)<=122:
        n=ord(S1)-21
        new=chr(n)
    else:
        new=S1
    print(new,end="")

猴子吃桃問題

猴子摘下若干個桃子,第一天吃了桃子的一半多一個,以后每天吃了前一天剩下的一半多一個,到第n天吃以前發現只剩下一個桃子,
撰寫程式實作:據輸入的天數計算并輸出猴子共摘了幾個桃子

a=eval(input())
b=1
c=1
if a!=int(a) or a<0:
    print('illegal data')
elif a==0:
    print(0)
else:
    for c in range(1,a):
        b=2*b+2
    print(b)

在生詞本查單詞的譯文

先輸入多個英文單詞及其譯文,接著輸入英文單詞,輸出該單詞的譯文,

在這里插入代碼片

求平均分

撰寫程式計算學生的平均分,

n=eval(input())
sign='Ture'
sum=0
if n>0:
    for t in range(1,n+1):
        a=eval(input())
        if  0<a<=100 and isinstance(n,int):
            sum=sum+a
        else:
            print('illegal input')
            break
    else:
        print('%.2f'%(sum/n))
else:
     print('illegal input')

統計大小寫字母個數和數字個數

統計一行字符的大寫字母,小寫字母和數字的個數,先輸出大寫字母個數,在輸出小寫字母個數,最后輸出數字個數,

str1=input()
a=0
b=0
c=0
for t in str1:
    if t.isupper():
        a=a+1
    elif t.islower():
        b=b+1
    elif t.isdigit():
        c=c+1
    else:
        others='program will go on work!'
print('%.d\n%.d\n%.d'%(a,b,c))

判斷該字符是字母字符、數字字符還是其他字符

已知變數ch中存放了一個字符,判斷該字符是字母字符、數字字符還是其他字符,

ch=input('please input a char:')
if ch.isalpha():
    print('alphabet character')
elif ch.isdigit():
    print('digital character')
else:
    print('others character')

字串中字母大小寫互換

a=input()
sum=''
for m in a:
    if 'A'<=m<='Z':
        sum=sum+chr(ord(m)+32)
    elif 'a'<=m<='z':
        sum=sum+chr(ord(m)-32)
    else:
        sum=sum+m
print(sum)

電話號碼

假設電話號碼的模式為:3個數字,一個短橫線,4個數字,一個短橫線和4個數字,如:186-7123-4567,撰寫程式,用以檢查輸入的字串是否匹配電話號碼模式,若匹配回傳True,否則回傳False,

a=input()
if len(a)==13:
    a1=a[0:3]
    a2=a[4:8]
    a3=a[9:13]
    a4=a[3]
    a5=a[8]
    if a1.isdigit() and a2.isdigit() and a3.isdigit() and a4=='-' and a5=='-':
        print('True')
    else:
        print('False')
else:
    print('False')

找不同

9個同學一起做游戲,每個人報一個[1,20]區間上的正整數,請你編程求出有多少個不同的數,

a = input().split()
print(len(set(a)))

找數對

輸入一組數到串列nums,請找到串列中任意兩個元素相加能夠等于9的元素,形成一個元組,使其小數在前大數在后,如:(2,7), (1,8),重復的元組元素只保留一個,結果按元組第一個元素從小到大順序輸出,

a=input('numbers:').split(',')
a=[eval(i) for i in a]
data=[]
for i in range(len(a)):
    for j in range(i+1,len(a)):
        if a[i]+a[j]==9:
            # print([i],[j])
            x,y=min((a[i],a[j])),max((a[i],a[j]))
            data.append((x,y))
data = list(set(data))
data.sort()
print(data,sep='')

出現最多次的整數

輸入一組無序的整數,編程輸出其中出現次數最多的整數及其出現次數,

_=input()
a=input().split()
a=[eval(i) for i in a]
mydict={}
for i in a:
    mydict[i] = mydict.get(i,0)+1
data=list(mydict.items())
data.sort(key=lambda x:(-x[1],x[0]))
for i in range(len(data)):
    if data[i][1]==data[0][1]:
        print(data[i][0],data[i][1])

找因子

輸入一個大于1的整數,回傳一個串列,包含所有能夠整除該整數的因子(不包含1和它本身),并且從小到大排序,如果這個數是素數,則輸出“(整數) is prime”,

a=eval(input('number:'))
list1=[]
for i in range(2,a):
    if a%i==0:
        list1.append(int(i))
        list1.append(int(a/i))
list1=list(set(list1))
if len(list1)==0:
    print('%d is prime'%a)
else:
    print(list1)

騎車還是走路

在華農校園里,沒有自行車,上課辦事會很不方便,但實際上,并非去辦任何事情都是騎車快,因為騎車總要找車、開鎖、停車、鎖車等,這要耽誤一些時間,假設找到自行車,開鎖并騎上自行車的時間為30秒;停車鎖車的時間為20秒;步行每秒行走2米,騎車每秒行走4米,請判斷走不同的距離去辦事,是騎車快還是走路快,

a=int(input('Please input a number of distance:'))
time1=50+a/4
time2=a/2
if time1>time2:
    print('Walk')
elif time1<time2:
    print('Bike')
else:
    print('All')

折半查找

撰寫程式實作對單調遞增的整型陣列進行折半查找,用折半查找法找出一個數是陣列中第幾個元素,如果找到,則回傳其下標;如果該數不在陣列中,則回傳-1,

long=input()
a=input()
key=input()
sign='F'
list1=a.split()
list2=[int(list1[i]) for i in range(0,len(list1))]
if list2!=sorted(list2):
    print('illegal input')
else:
    for i in range(len(list1)):
        if key==list1[i]:
            sign='T'
            print(i)
            break
    if sign=='F':
        print('not found')

字母計數

輸入字串,輸出字串中出現次數最多的字母及其出現次數,如果有多個字母出現次數一樣,則按字符從小到大順序輸出字母及其出現次數,

a=input()
dict1={}
for t in a:
    for i in range(len(a)-1):
        if a[i]>a[i+1]:
            a=a[:i]+a[i+1]+a[i]+a[i+2:]
for i in a:
    dict1[i]=dict1[i]+1 if i in dict1 else 1
max1=0
for i in dict1:
    if dict1[i]>max1:
        max1=dict1[i]
for i in dict1:
    if dict1[i]==max1:
        print(i,dict1[i])

一萬以內的完全平方數

請將一萬以內的完全平方數輸出

for i in range(1,10001):
    if i**(1/2)==int(i**(1/2)):
        print(i)

世界杯官網注冊

“世界杯”是世界上最高榮譽、最高規格、最高競技水平、最高知名度的足球比賽,2018年世界杯于6月14日至7月15日在俄羅斯舉行,每一屆世界杯也是全世界球迷的一次盛會,部分球迷更是不遠萬里親臨現場觀賽,某旅游網站推出觀球賽套餐,網站注冊時要求用戶名只能包含字母、數字和下劃線,并且首字符必須是字母或下劃線,在計算機中撰寫程式判斷輸入的用戶名是否符合該旅游網站要求,如果符合,請輸出“Yes”,否則輸出“No”.

a=input()
sign='T'
if a[0]=='_' or a[0].isalpha():
    for i in a[1:]:
        if i.isalnum() or i=='_':
            m=0
        else:
            sign='F'
            break
    if sign=='T':
        print('Yes')
    else:
        print('No')
else:
     print('No')

二進制整數轉換為十進制整數

撰寫程式,輸入字串形式的二進制整數(長度為16位,采用補碼表示),把它轉換為十進制整數,輸出該十進制整數,

a=input()
b=0
c=0
i=0
if a[0]=='1':
    if a[-1]=='1':
        a=a[:-1]+'0'
        for i in range(len(a)):
            if a[i]=='1':
                a=a[:i]+'0'+a[i+1:]
            else:
                a=a[:i]+'1'+a[i+1:]
        print(a)
    else:
        for t in a[::-1]:
            i-=1
            if t=='1':
                break
        t=a[i:]
        a=a[:i]
        for i in range(len(a)):
            if a[i]=='1':
                a=a[:i]+'0'+a[i+1:]
            else:
                a=a[:i]+'1'+a[i+1:]
        a=a+t
    list1=[-int(i) for i in a[::-1]]
else:
    list1=[int(i) for i in a[::-1]]
for i in list1:
    c=c+i*(2**(b))
    b=b+1
print(c)

# 或者是直接寫print(int(input(),2))

統計正負數個數

從鍵盤輸入非0整數,以輸入0為輸入結束標志,求平均值,統計正數負數個數

list1=[]
a=0
b=0
c=0
sum1=0
while 1:
    c+=1
    i=eval(input())
    sum1=sum1+i
    if i>0:
        a+=1
    elif i<0:
        b+=1
    else:
        break
print(sum1/(c-1))
print(a)
print(b)

一年中第幾天

輸入某年某月某日,判斷這一天是這一年的第幾天?程式分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況:閏年且輸入月份大于3時需考慮多加一天,

dict1={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}
a=input()
list1=a.split()
list1=[int(i) for i in list1]
sum1=0
if list1[0]%4==0 and list1[0]%100!=0 or list1[0]%400==0:
    dict1[2]=29
else:
    dict1[2]=28
for i in dict1:
    if i<list1[1]:
        sum1=sum1+dict1[i]
print(sum1+list1[2])

輸出斐波拉契數列-上機考試題

定義一個函式fib,給定n,回傳n以內的斐波那契數列,
注:斐波拉契數列由0和1開始,之后的數就是由之前的兩數相加而得出:0, 1, 1, 2, 3, 5, 8, 13, 21

num=eval(input('input a number please:'))
list1=[0,1]
c=1
i=1
while 1:
    c=list1[i]+list1[i-1]
    if c>num:
        break
    else:
        i+=1
        list1.append(c)
for i in list1[1:]:
    print(i,end=',')

數字出現次數排序

給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出,

a=input()
b=input()
list1=b.split()
list1.sort()
list1=[int(i) for i in list1]
dict1={}
for i in list1:
     if i in dict1:
         dict1[i]=dict1[i]+1
     else:
         dict1[i]=1
list1=list(dict1.items())
list1.sort(key=lambda x:(-x[1],x[0]))
for i in list1:
    print(i[0],i[1])

分段函式

有一個定義在自然數上的函式 f(x) 定義如下:
若 x <5 , 則 f(x) = x;
若 5<=x<15, 則 f(x) = x+6;
若 x>=15, 則 f(x) = x-6,
試撰寫該函式,輸入x值,回傳相應的f(x)值,

x=eval(input())
def f(x):
    if 0<=x<5:
        x=x
    elif 5<=x<15:
        x=x+6
    elif x>=15:
        x=x-6
    else:
        return('illegal input')
    return x
print(f(x))

根據用戶輸入的日期計算天數

撰寫函式isLeap(year)用于判斷year是否是閏年,若是閏年則回傳True,否則回傳False,

def isLeap(year):
    if year%4==0 and year%100!=0 or year%400==0:
        return True
    else:
        return False
def days(year,month):
    dict1={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}
    sum1=0
    if isLeap(year):
        dict1[2]=29
    else:
        dict1[2]=28
    for i in dict1:
        if i<month:
            sum1=sum1+dict1[i]
    print(sum1+list1[2])
a=input()
list1=a.split('/')
list1=[int(i) for i in list1]
year=list1[0]
month=list1[1]
day=list1[2]
days(year,month)

函式CountC

撰寫函式CountC用來統計字串中各字母字符(“A”“Z”,“a”“z”)出現的個數,

def countn(str1):
    a=0
    for i in str1:
        if i.isalpha():
            a+=1
    return a 
str1=input()

print(countn(str1))

求多項式的和

撰寫一個函式mySum(a,n),求以下n項式的和:
s=a+aa+aaa+…+aa…a, 其中a是1~9的數字,最后一項是n位都是a的數字
程式部分代碼如下:
x,y=eval(input())
print(mySum(x,y))

def mySum(a,n):
    list1=list(map(lambda n:sum(list(map (lambda n:a*(10**n),range(n))))          ,range(1,n+1))  )
    return sum(list1)
x,y=eval(input())
mySum(x,y)
print(mySum(x,y))

函式sumx()

定義一個函式sumx(),引數個數不限,回傳所有引數的和,請完善程式代碼,

def sumx(*a):
    return sum(a)

x,y=eval(input(""))
print(round(sumx(x,y),2))
a,b,c=eval(input(""))
print(round(sumx(a,b,c),2))

電影選看

在當前目錄下有一個檔案名為movie.txt,檔案中有6列資料,包括No Name Year Country Score Lasting,分別表示序號、電影名、上映年份、國家、評分和電影時長,李華只想觀看時長在90分鐘以下(包括90分鐘)的電影,請你撰寫程式幫他挑選出符合條件的電影序號,一行列印一個序號寫到檔案out.txt中,
[movie.txt])(http://itc.hzau.edu.cn/userfiles/file/2019/1574656350956070421.txt)

f=open('movie.txt','r',encoding='utf-8')
m=open('out.txt','w')
list1=f.readlines()
del(list1[0])
dict1={}
for i in list1:
        i.strip()
        list2=i.split()
        if int(list2[-1])<=90:
                print(list2[0])
                m.write(str(list2[0])+'\n')
        list2=[]
f.close()
m.close()

學生成績轉換

讀入檔案d1.txtd1.txt,每行資料包含兩個資訊:學號和成績,將成績轉換成5級制并按照學號遞減排序,在螢屏上輸出學號和成績中間有一個空格的間隔,將不及格學生人數寫到檔案d2.txt中,

f=open('d1.txt')
dict1={}
list1=[]
for i in f:
    (a,b)=i.split(' ',1)
    if 90<=eval(b):
        dict1[a]='A'
    elif 80<=eval(b)<90:
        dict1[a]='B'
    elif 70<=eval(b)<80:
        dict1[a]='C'
    elif 60<=eval(b)<70:
        dict1[a]='D'
    else:
        dict1[a]='E'
list1=list(dict1.items())
list1.sort(key=lambda x:(eval(x[0]),x[1]))
new=open('d2.txt','w')
count=0
for i in list1:
    print(i[0]+' '+i[1])
    if i[1]=='E':
        count+=1
new.writelines(str(count))
new.close()
f.close()

武漢氣溫

在當前目錄下有一個檔案名為temp.txt(檔案中資料如下:)的檔案,存放著武漢從2018年11月10日(周六)到11月19日(周一)間十天的最高和最低氣溫(單位為攝氏度),其中,第一行為最高氣溫,第二行為最低氣溫,
temp.txt檔案中資料:temp.txt

版本一

f=open('temp.txt')
list1=[]
for i in f:
    list1.append(i)
list2=list1[0].split(',')
list3=list1[1].split(',')
list2=[int(i) for i in list2]
list3=[int(i) for i in list3]
max1=max(list2)
min1=min(list3)
list4=[]
for i in range(len(list2)):
    if list2[i]==max1:
        list4.append(i+1)
print(str(list4)+':hot,temperature:'+str(max1)+'C')
list4=[]
for i in range(len(list2)):
    if list3[i]==min1:
        list4.append(i+1)
print(str(list4)+':cold,temperature:'+str(min1)+'C')
list5=[]
for i in range(len(list2)):
    list5.append(int((list2[i]+list3[i])/2))
print('aver:'+str(int(sum(list5)/10)))
count=0
for i in list5:
    if i<10:
        count+=1
if count>=5:
    print('In winter')
else:
    print('Not in winter')

版本二

f = open('temp.txt')
data = f.readlines()
f.close()
high,low = data
high = [eval(i) for i in high.split(',')]
low = [eval(i) for i in low.split(',')]
highest = [i+1 for i in range(len(high)) if high[i]==max(high)]
lowest = [i+1 for i in range(len(low)) if low[i]==min(low)]
print(str(highest)+':hot,temperature:%sC'%max(high))
print(str(lowest)+':cold,temperature:%sC'%min(low))

mean_ls = [(high[i]+low[i])/2 for i in range(len(high))]
print('aver:%d'%int(sum(mean_ls)/len(mean_ls)))

winter_ls = [i for i in mean_ls if i<10]
print('In winter') if len(winter_ls)>=5 else print('Not in winter')

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236085.html

標籤:python

上一篇:Python處理Excel資料-pandas篇

下一篇:Python實作輸入電影名字自動生成豆瓣評論詞云圖(帶GUI界面)小程式

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more