Python編程小記:基本語法

1、僅使用Python基本語法(不適用任何模塊),編寫計算下列數學表達式的結果並輸出,保留三位小數。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪

x = pow((pow(3,4)+5*pow(6,7))/8,0.5)
print('{:0.3f}'.format(x))
x = (((3**4)+5*(6**7))/8)**0.5
print('%0.3f'%x)

2、0x4DC0 是一個十六進制數,它對應的 Unicode 編碼是中國古老的《易經》六十四卦的第一卦,請輸出第 51 卦(震卦)對應的 Unicode 編碼的二進制、十進制、八進制和十六進制格式。

print("二進制{0:b}、十進制{0}、八進制{0:o}、十六進制{0:x}".format(0x4DC0+50))

3、從鍵盤輸入一個整數,在屏幕上顯示輸出該整數Python語言十六進制、八進制、二進制表示形式。

Tempstr = eval(input())
print("0x{0:0x},0o{0:o},0b{0:b}".format(Tempstr))

4、輸出一個具有如下風格效果的文本,用作文本進度條樣式,前三個數字,右對齊;後面字符,左對齊。

N = eval(input())   # N取值範圍是0—100,整數
print('{:>3}%@{}'.format(N,'='*(N//5)))

5、從鍵盤輸入一個整數和一個字符,以逗號隔開,在屏幕上顯示輸出一條信息。例如輸入10,@,輸出結果如下

a,x = input().split(',') # 請輸入1個整數和1個符號,逗號隔開
print('{1:} {0:} {1:}'.format(str(a),x*eval(a)))

6、從鍵盤輸入一個整數和一個字符,以逗號隔開,在屏幕上顯示輸出一條信息。

ls=input().split(',')
print(ls[0].center(eval(ls[0])*2+len(ls[0]),ls[1]))

7、根據輸入字符串 s,輸出一個寬度爲 15 字符,字符串 s 居中顯示,以“=”填充的格式。如果輸入字符串超過 15 個字符,則輸出字符串前 15 個字符。

s = input()
print('{:=^15}'.format(s[:15]))

8、根據輸入字符串 s,輸出一個寬度爲 15 字符,字符串 s 居中顯示,以“=”填充的格式。如果輸入字符串超過 15 個字符,則輸出所有字符串。

s = input()
print('{:=^15}'.format(s))

9、根據輸入數字,輸出一個寬度爲 15 字符,數字居中顯示,以“=”填充的格式,並添加千位分隔符。

num = eval(input())
print('{0:=^15,}'.format(num))

10、輸出如“2020年10月10日10時10分10秒”樣式的時間信息。

import time
timestr = "2020-10-10 10:10:10"
t = time.strptime(timestr, "%Y-%m-%d %H:%M:%S")
print(time.strftime("%Y年%m月%d日%H時%M分%S秒", t)

11、從鍵盤輸入一個人的身高和體重的數字,以英文逗號隔開,在屏幕上顯示輸出這個人的身體質量指數(BMI),BMI 的計算公式是 BMI = 體重(kg)/ 身高的平方(m)。

h,w = eval(input()) # 請輸入身高(m)和體重(kg),逗號隔開
print("BMI是 {:.1f}".format(w /(h*h) ))

12、編寫程序,從鍵盤上獲得用戶連續輸入且用逗號分隔的若干個數字(不必以逗號結尾),計算所有輸入數字的和並輸出。

n = input()
nums = n.split(',') 
s = 0
for i in nums:
    s+=eval(i)
print(s)

13、從鍵盤輸入一個由 1 和 0 組成的二進制字符串 s,轉換爲十進制數輸出顯示在屏幕上。

s = input()
d = 0
while s:
    d = d+(int(s[0])*pow(2,len(s)-1))
    s = s[1:]
print("轉換成十進制數是:{}".format(d))

14、從鍵盤輸入一個由 1 和 0 組成的二進制字符串 s,轉換爲八進制數輸出顯示在屏幕上。

s = input()  # 請輸入一個由1和0組成的二進制數字串
d = 0
while s:
    d = d+(eval(s[0])*pow(2,len(s)-1))
    s = s[1:]
print("轉換成八進制數是:{:0o}".format(d))

15、將一個列表中所有的單詞首字母轉換成大寫。

ls = eval(input())
for i in range(len(ls)):
    ls[i] = ls[i].title()
print(ls)

總結:upper()轉成大寫、lower()轉換成小寫、title()各單詞首字母大寫、capitalize()只首個字母大寫,swapcase()大小寫互換。

16、輸入一個字符串,其中的字符由(英文)逗號隔開,編程將所有字符連成一個字符串,輸出顯示在屏幕上。

ls = input().replace(',','') # 請輸入一個字符串,由逗號隔開每個字符
print('{}'.format(ls))

17、輸出中文字符串s中漢字和標點符號的個數。

s = "學而時習之,不亦說乎?有朋自遠方來,不亦樂乎?人不知而不慍,不亦君子乎?"
#方法一
n = 0  # 漢字個數
m = 0  # 標點符號個數
b=['"',',','?','"']
for i in range(len(s)):
    if s[i] in b:
        m+=1
    else:
        n+=1
print("字符數爲{},標點符號數爲{}。".format(n, m))
#方法二計算m、n
m = s.count(',') + s.count('?')
n = len(s) - m

18、輸入一個字符串,檢查並統計字符串中包含的英文單引號的對數。如果沒有找到單引號,就在屏幕上顯示“沒有單引號”;每統計到2個單引號,就算一對,如果找到2對單引號,就顯示“找到了2對單引號”;如果找到3個單引號,就顯示“有1對配對單引號,存在沒有配對的單引號”。

st = input()
pair=0
for s in st:
    if s=='\'':
        pair+=1
if pair == 0:
    pro = "沒有單引號"
elif pair % 2 == 0:
    a = str(pair//2)
    pro = "找到了"+a+"對單引號"
else:
    a = str(pair//2)
    pro = "有"+a+"對配對單引號,存在沒有配對的單引號"
print(pro)

19、編寫程序,生成包含1000個0~100的隨機整數,並統計每個元素的出現次數。

import random
x = [random.randint(1,100) for i in range(1000)]

#使用列表
y = []
y = [x[i] for i in range(len(x)) if x[i] not in y]
for j in range(len(y)):
    #print('{}:{}'.format(y[j], x.count(y[j])))
    print(y[j],':',x.count(y[j]))

print('*'*30)

#使用集合,集合是無序不重複元素序列
s = set(x)
for v in s:
    print(v,':',x.count(v))
    
print('='*30)

20、編寫程序,用戶輸入一個列表和兩個整數作爲下標,然後使用切片獲取並輸出列表中介於兩個下標之間的元素組成的列表。例如,用戶輸入[1,2,3,4,5,6]和2、5,程序輸出[3,4,5,6]

x=eval(input('please input a list:\n'))
y1,y2=eval(input('please input two number:\n'))
print(x[y1:y2+1])

21、列表 ls 中存儲了我國 39 所 985 高校所對應的學校類型,請以這個列表爲數據變量,完善 Python 代碼,統計輸出各類型的數量。

ls = ["綜合", "理工", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合", "綜合",\
      "師範", "理工", "綜合", "理工", "綜合", "綜合", "綜合", "綜合", "綜合","理工",\
      "理工", "理工", "理工", "師範", "綜合", "農林", "理工", "綜合", "理工", "理工", \
      "理工", "綜合", "理工", "綜合", "綜合", "理工", "農林", "民族", "軍事"]

方法一:原始的統計方法

count_1=0
count_2=0
count_3=0
count_4=0
count_5=0
count_6=0
for i in range(len(ls)):
    if ls[i] == str("綜合"):
        count_1+=1
    elif ls[i] == str("理工"):
        count_2+=1
    elif ls[i] == str("師範"):
        count_3+=1
    elif ls[i] == str("農林"):
        count_4+=1
    elif ls[i] == str("民族"):
        count_5+=1
    else:
        count_6+=1
print("綜合:{0}\n理工:{1}\n師範:{2}\n農林:{3}\n民族:{4}\n軍事:{5}\n".format(count_1,count_2,count_3,count_4,count_5,count_6))

方法二:使用列表的內置函數list.append()和list.count()

ls_1=[]
for i in range(len(ls)):
    if ls[i] not in ls_1:
        ls_1.append(ls[i])
for text in ls_1:
    print('{}:{}'.format(text,ls.count(text)))
print('\n')

方法三:使用字典 

d={}
for word in ls:
    d[word]=d.get(word,0)+1
for k in d:
    print("{}:{}".format(k,d[k]))

22、將列表 studs 的數據內容提取出來,放到一個字典 scores 裏,在屏幕上按學號從小到大的順序顯示輸出 scores 的內容。內容示例如下:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

101:[85, 82, 80]‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

102:[75, 72, 70]‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

103:[95, 92, 90]

studs= [{'sid':'103','Chinese': 90,'Math':95,'English':92},
{'sid':'101','Chinese': 80,'Math':85,'English':82},
{'sid':'102','Chinese': 70,'Math':75,'English':72}]
scores = {}
for stud in studs:
    sv = stud.items()
    v = []
    for it in sv:
        if it[0] =='sid':
            k = it[1]
        else:
            v.append(it[1])
    scores[k]=v
so =list(scores.items())
so.sort(key = lambda x:x[0],reverse = False)
for l in so:
    print('{}:{}'.format(l[0],l[1]))

23、 編寫代碼完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(1)建立字典 d,包含內容是:"數學":101, "語文":202, "英語":203, "物理":204, "生物":206。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(2)向字典中添加鍵值對"化學":205。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(3)修改"數學"對應的值爲 201。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(4)刪除"生物"對應的鍵值對。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

(5)打印字典 d 全部信息。

d = {"數學":101, "語文":202, "英語":203, "物理":204, "生物":206}
d["化學"]=205
d["數學"]=201
del d["生物"]
for key in d.keys():
    print("{}:{}".format(d[key],key))

24、實現將列表 ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141] 中的素數去除,並輸出去除後列表 ls 的元素個數。

def is_prime(n):
    for i in range(2,n):
        if n%i == 0:
            return False
    return True 
ls = [23,45,78,87,11,67,89,13,243,56,67,311,431,111,141]
for i in ls.copy():
    if is_prime(i) == True:
        ls.pop(ls.index(i))
print(len(ls))

25、實現功能:從鍵盤輸入一個漢字,在屏幕上顯示輸出該漢字的 Unicode 編碼值。

s = input()
print("\"{}\"漢字的Unicode編碼:{}".format(s,chr(ord(s))))

26、從鍵盤輸入一個列表,計算輸出列表元素的平均值。

def mean(numlist):
    s = 0.0
    for num in numlist:
        s = s + num
    return s
#請輸入一個列表:
ls = eval(input())
print("平均值爲:",mean(ls)/len(ls)) 

27、從鍵盤輸入 3 個數作爲三角形的邊長,在屏幕上顯示輸出由這 3 個邊長構成三角形的面積(保留 2 位小數)。

a,b,c = eval(input())
p = (a+b+c)/2
area = pow(p * (p-a)*(p-b)*(p-c),0.5)
print('{:.2f}'.format(area))

28、根據斐波那契數列的定義,F(0)=0,F(1)=1, F(n)=F(n–1)+F(n–2)(n≥2),輸出不大於 100 的序列元素,

a,b = 0, 1
while a <= 100:
    print(a, end = ",")
    a, b = b, (a+b)

29、編寫程序,獲得用戶輸入的數值 M 和 N,求 M 和 N 的最大公約數。

def GreatCommonDivisor(a,b):
    if a > b:
        a,b = b,a
    r = 1
    while r != 0:
        r = a % b
        a = b
        b = r
    return a
m = eval(input())
n = eval(input())
print(GreatCommonDivisor(m,n))

30、從鍵盤輸入一個列表,計算輸出列表元素的均方差。

def mean(numlist):
    s = 0.0
    for num in numlist:
        s = s + num
    return s/len(numlist)
def dev(numlist,mean):
    sdev = 0.0
    for num in numlist:
        sdev = sdev + (num - mean)**2
    return (sdev /(len(numlist)-1) )** 0.5
#請輸入一個列表:
ls = eval(input(""))
print("均方差爲:{:.2f}".format(dev(ls,mean(ls))))

31、計算兩個向量的內積。從鍵盤接收一個整數 n,作爲一維向量的長度;然後輸入 n 個整數,以英文逗號隔開,存成一個向量 x,然後再接收另 n 個整數,以逗號隔開,存成另一個向量 y,然後計算兩個向量對應元素的乘積的和。在屏幕上輸出結果。

n = eval(input())
xin = input().split(',')
yin = input().split(',')#隔開之後是str
sum = 0
for i in range(n):
   sum += eval(xin[i]) * eval(yin[i])
print("x和y的內積是:", sum)

32、從鍵盤輸入一個用於填充的圖符,一個字符串,一個要顯示的字符串的總長度;編程將輸入的字符串,居中輸出顯示在屏幕上,用填充圖符補齊到輸入的總長度。如果總長度處輸入的不是正整數,則提示請輸入一個正整數,並重新提示輸入,直至輸入正整數。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬輸入:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入填充符號:@‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入要顯示的字符串:qq‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入字符串總長度:r‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入一個正整數‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入字符串總長度:3.4‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入一個正整數‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

請輸入字符串總長度:4‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

輸出:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

@qq@

a = input()  # 請輸入填充符號
c = input()  # 請輸入要顯示的字符串
flag = 1
while flag:
    try:
        b = eval(input())  # 請輸入字符串總長度
    except:
        flag = 1
        print("請輸入一個正整數")
    else:
        if type(b)== int and b>0:
            flag = 0
        else:
            flag = 1
            print("請輸入一個正整數")
print('{0:{1:}^{2:}}'.format(c,a,b))

33、某自然數除它本身之外的所有因子之和等於該數,則該數被稱爲完數。請輸出1000以內的完數。

for i in range(2,1001):
    #先求i的所有因子之和,用循環
    s = 0
    for j in range(1,i):
        if i%j == 0:
            s+=j
        else:
            continue
    if s == i:
        print(i)
    else:
        continue
    #判斷與i相等,則是完數,輸出 ,不是的話 ,循環繼續

34、計算整數 到整數 N+100 之間所有奇數的數值和,不包含 N+100,並將結果輸出,整數 由用戶給出。

N = input("請輸入一個整數: ")
N=eval(N)
x=0
for i in range(N,N+100):
    if i%2==1:
        x+=i
print(x)

35、經常會有要求用戶輸入整數的計算需求,但用戶未必一定輸入整數。爲了提高用戶體驗,編寫 getInput() 函數處理這樣的情況。請補充如下代碼,如果用戶輸入整數,則直接輸出整數並退出,如果用戶輸入的不是整數,則要求用戶重新輸入,直至用戶輸入整數爲止。

def getInput():
    try:
        txt=input() #請輸入整數
        while eval(txt) != int(txt):
            txt=input() #請輸入整數
    except:
        getInput()
    return eval(txt)
print(getInput())

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章