【Python】Python 100題 分類入門練習題 - 新手友好

Python 100題 分類入門練習題 - 新手友好篇 - 整合篇

  • 一、數學問題
    • 題目1:組合數字
    • 題目2:利潤計算
    • 題目3:完全平方數
    • 題目4:日期天數計算
    • 題目11:兔子繁殖問題
    • 題目18:數列求和
    • 題目19:完數判斷
    • 題目21:猴子吃桃
    • 題目24:分數序列求和
    • 題目25:階乘累加
    • 題目26:階乘遞歸
    • 題目28:年齡推理
    • 題目80:猴子分桃問題
    • 題目83:奇數組合數
    • 題目85:9的倍數驗證
    • 題目81:數學等式驗證
  • 二、字符串操作
    • 題目13:水仙花數
    • 題目17:字符統計
    • 題目33:列表轉字符串
    • 題目62:子串查找
    • 題目89:加密算法
    • 題目96:子串計數
    • 題目98:大小寫轉換
    • 題目60:字符串長度
    • 題目86:字符串連接
    • 題目31:星期判斷
  • 三、列表與字典操作
    • 題目5:三數排序
    • 題目38:矩陣對角線
    • 題目44:矩陣相加
    • 題目68:數組循環移位
    • 題目69:約瑟夫環問題
    • 題目72:創建鏈表
    • 題目73:反向鏈表
    • 題目100:列表轉字典
    • 題目39:數組插入排序
    • 題目67:數組極值交換
    • 題目79:字符串排序
    • 題目66:數組逆序輸出
    • 題目40:數組逆序
  • 四、文件操作
    • 題目97:寫入文件
    • 題目98:文件保存
    • 題目99:文件合并排序
  • 五、日期時間處理
    • 題目10:格式化時間
    • 題目16:日期輸出
    • 題目95:日期解析
    • 題目91:時間函數示例1
    • 題目92:時間函數示例2
    • 題目93:時間函數示例3
    • 題目94:反應速度測試
  • 六、圖形繪制
    • 題目56:圓形繪制
    • 題目57:直線繪制
    • 題目58:方形繪制
    • 題目59:綜合圖形
    • 題目63:橢圓繪制
    • 題目64:圖形組合
    • 題目65:藝術圖案
    • 題目23:菱形打印
  • 七、算法與數據結構
    • 題目6:斐波那契數列
    • 題目12:素數篩選
    • 題目20:小球彈跳計算
    • 題目22:比賽名單排列
    • 題目61:楊輝三角生成
    • 題目76:分段函數計算
    • 題目77:循環輸出列表
    • 題目78:最大年齡查找
    • 題目84:列表極值交換
    • 題目8:九九乘法表
    • 題目9:延時輸出
    • 題目14:質因數分解
    • 題目15:成績分級
  • 八、位運算
    • 題目51:按位與
    • 題目52:按位或
    • 題目53:按位異或
    • 題目54:位截取
    • 題目55:按位取反
    • 題目82:八進制轉十進制
  • 九、其他編程問題
    • 題目27:遞歸逆序
    • 題目29:數字拆分統計
    • 題目30:回文數判斷
    • 題目32:列表逆序輸出
    • 題目34:三次輸出函數
    • 題目35:文本顏色設置
    • 題目36:素數篩選
    • 題目37:十數排序
    • 題目41:靜態變量
    • 題目42:自動變量
    • 題目43:靜態變量案例
    • 題目45:數字累加
    • 題目46:平方閾值判斷
    • 題目47:變量交換
    • 題目48:數字比較
    • 題目49:匿名函數
    • 題目50:隨機數生成
    • 題目71:學生數據IO
    • 題目87:結構體變量傳遞
    • 題目88:星號打印

一、數學問題

題目1:組合數字

題目1: 有四個數字:1234,能組成多少個互不相同且無重復數字的三位數?各是多少?
# 正常 
num =[]
for a in range(1,5):for b in range(1,5):for c in range(1,5):if (a != b and a!= c and b!=c) :  # if a != b != c  只判斷了a不等于b,b不等于c,沒有判斷a和c的關系 num.append(a*100 + b*10 + c)
print(num) # 簡寫: 
x = [1,2,3,4]
num  = [i*100 + j*10 + k for i in x for j in x for k in x if (j != i and k != j and k != i)]# itertools ,結果需處理 
import itertools
num = [] 
x=[1,2,3,4]
for i in itertools.permutations(x,3):num.append(i)
print(num) 

題目2:利潤計算

題目2:企業發放的獎金根據利潤提成。
利潤(I)低于或等于10萬元時,獎金可提10%;
利潤高于10萬元,低于20萬元時,低于10萬元的部分按10%提成,高于10萬元的部分,可提成7.5%20萬到40萬之間時,高于20萬元的部分,可提成5%40萬到60萬之間時高于40萬元的部分,可提成3%60萬到100萬之間時,高于60萬元的部分,可提成1.5%,
高于100萬元時,超過100萬元的部分按1%提成,
從鍵盤輸入當月利潤I,求應發放獎金總數?
"""
# 比較簡單,直接上答案 
def get_bonus(profit):bonus = 0if profit <= 100000:bonus = profit*0.1   # 不能寫百分數7.5%,需轉化為小數點elif 100000 < profit <= 200000:bonus = get_bonus(100000) + (profit-100000)*0.075   elif 200000 < profit <= 400000:bonus = get_bonus(200000) + (profit-200000)*0.05elif 400000 < profit <= 600000:bonus = get_bonus(400000) + (profit-400000)*0.03elif 600000 < profit <= 1000000:bonus = get_bonus(600000) + (profit-600000)*0.015else :bonus = get_bonus(1000000) + (profit-1000000)*0.01return bonusget_bonus(1000000)

題目3:完全平方數

題目3:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
"""
分析: 
a + 100 = b**2 + 168 = c**2 
168 = c**2 - b**2  
因為b小于c,且b,c都屬于168,所以b∈c for c in range(1,168):for b in range(1,c): if c**2-b**2 == 168:a = b**2 - 100print(a)"""

題目4:日期天數計算

題目4:輸入某年某月某日,判斷這一天是這一年的第幾天?
"""
分析:
1. 月份 += 天數;
2. 1,4,9,11月 固定30天,35681012月 固定31, 2月閏年28天,非潤29;
3. 考慮系統語言計算差會存在1天誤差,所以起始天數為1; 
def get_days(year,month,day):days = [31,28,31,30,31,60,31,31,30,31,30,31] sum = 1    # 不能是0,日期從1開始算if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0) :days[2] = days[2]+1else:days[2] = days[2]for i in range(month-1):sum += days[i]return sum get_days(2021,3,1)

題目11:兔子繁殖問題

題目11:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
"""
分析: 
每一對新兔子的第3個月會數量裂變,所以這一對兔子第n月生的兔子數為: sum = 2+(n-2)*2; 第二個兔子對也遵循這個邏輯;
month = [1,2,3,4,5,6,7,8...]
rab_1 = [2,2,2,2,2,2,2,2...]
rab_2 = [0,0,2,2,4,6,8,10...]
rab_3 = [0,0,0,2,2,4,6,8...]
rab_4 = [0,0,0,0,2,2,4,6...]
rab_5 = [0,0,0,0,0,2,2,4]
rab_6 = [0,0,0,0,0,0,2,2]
rab_7 = [0,0,0,0,0,0,0,2]
...
匯總 = [2,2,4,6,10,16,26,42...]
從匯總可得,符合斐波那契數列的變式, 從官網看得理解題目和答案不匹配,一對=2 而不是1; def rabbits(n):if n==1 or n==2:return 2return rabbits(n-1)+rabbits(n-2)rabbits(7)

題目18:數列求和

題目18:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制.
""" 
分析:
傳入2個參數 
1.總的幾個數相加即最長的長度: len = 5 
2.傳入的n 是什么:2 22 222 2222 22222 
找規律:
2 = 2*10**0      n = 2= (len-1) 
22 = 2*10**1+2
222 = 2*10**2 + 22
2222 = 2*10**3 + 222
得公式: tmp = n*10**(len-1) + tmp  def get_sum(n,len):sum = 0   # 輸出和 tmp = 0   # 分解的值 for a in range(1,len+1):  # a 浮標 = 冪  tmp = n*10**(a-1) + tmp  sum += tmp return sum  
get_sum(2,5) 

題目19:完數判斷

題目19:一個數如果恰好等于它的因子之和,這個數就稱為"完數"。例如6=123.編程找出1000以內的所有完數。
""" 
分析:14先找因子  然后 n = sum(因子和)for a in range(1, 1000):sum = 0for b in range(1, a):if a % b == 0:sum += bif sum == a:print(a)

題目21:猴子吃桃

題目21:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個.第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
""" 
分析: 每次1/2+1,倒推即最后剩下的(n+1)*2 = n 前一天的即1 1534/2-1 = 7662 766/2-1 = 382 3 382/2-1 = 1904 190/2-1 = 945 94/2 -1 = 46 6 46/2 -1 = 22 7 22/2 -1 = 10 8 10/2 -1 = 4 9 4/2  -1 = 1 
def peach(rest):rest = 1for a in range(1,11):  # 第10天剩1個,實際是第九天吃完后還剩1個  a = 循環天數if a <= 9: rest = (rest+1)*2a = a + 1else:break return rest 
peach(10)

題目24:分數序列求和

題目24:有一分數序列:2/13/25/38/513/821/13...求出這個數列的前20項之和。
""" 
分析:
2 3 5 8 13 21
1 2 3 5 8  1320項之和首先得得到第20個數是什么,然后每個數相加 def add_sum(n):   # n第幾個數a = 1    # 分母 b = 1    # 分子sum = 0  for i in range(1,n+1):a,b = b,a+bsum += b/a return sum 
add_sum(20)  

題目25:階乘累加

題目25:求1+2!+3!+...+20!的和。
""" 
分析:24題是累加的概念,這里是累乘 def mul_sum(n):   # n第幾個數sum = 0tmp = 1for x in range(1,n+1):  tmp *= xsum += tmp return sum 
mul_sum(3) 

題目26:階乘遞歸

題目26:利用遞歸方法求5!。
""" 
分析:25題是累乘,26是簡單化了
def mul_sum(n):   # n第幾個數tmp = 1for x in range(1,n+1):  tmp *= xreturn tmp 
mul_sum(5) 

題目28:年齡推理

題目28:有5個人坐在一起.問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第3個人,又說比第2人大2歲。問第2個人,說比第1個人大2歲。最后問第一個人,他說是10歲。請問第五個人多大?
""" 
分析: 
遞歸思想 每前1個人+2歲即可; 
age = 10
for i in range(1,5):if i <=4:age += 2else: age 
print(age)

題目80:猴子分桃問題

題目80:海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子平均分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份. 第三、第四、第五只猴子都是這樣做的. 問海灘上原來最少有多少個桃子?
""" 
分析:21題相似 每5份多14,連續5,此外,要考慮分攤除盡的問題,桃子沒法分成小于1; 
def monekys(n):if n==num:return(4*x)       #最后剩的桃子的數目else:return(monekys(n+1)*5/4+1)
x=1
while 1:count=0for i in range(1,num):if monekys(i)%4==0 :count=count+1if count==num-1:print("海灘上原來最少有%d個桃子" % int(monekys(0)))breakelse:x=x+1

題目83:奇數組合數

題目83:求07所能組成的奇數個數。
""" 
分析:
0-78個數,個位奇數為13572位數及以上首位不可以為0;: 組成1位數是4個組成2位數是7*4個組成3位數是7*8*4個組成4位數是7*8*8*4.... 依次類推 L = []
sum = 0 
for i in range(1,9):  # i等于位數 if i == 1 :num = 4 sum += numif i >=2:num = 4*7*8**(i-2) sum += num
print(sum)

題目85:9的倍數驗證

題目85:輸入一個奇數,然后判斷最少幾個 9 除于該數的結果為整數。
""" 
i = int(input('輸入奇數: '))
sum = 9 
while sum % i != 0:sum = sum * 10 + 9   # 循環賦值  print(sum)

題目81:數學等式驗證

題目81809*??=800*??+9*?? 其中??代表的兩位數, 809*??為四位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??后的結果。
""" 
分析: 809*ab 四位數 得到ab<=128*ab   兩位數 得到ab<=129*ab   三位數 得到ab>11所以ab = 12 
for i in range(10,101):if 809 * i == 800 * i + 9 * i:if 8 * i < 100 :if 9 * i > 100 and 9 * i < 1000:print(i ,809 * i)

二、字符串操作

題目13:水仙花數

題目13:打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。
"""
// 取整  % 取余 
num = []
for n in range(100,1000):a = n//100b = n//10%10   c = n%10 if n == a**3 + b**3 + c**3 :num.append(n)
print(num)

題目17:字符統計

題目17:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
"""
考察string包的用法, 舉個例子: "kobe 8&24"
英文:4 數字:3  空格:1 其他字符:1
要自己寫的話,邏輯寫入0-9/大小寫一致a-z/" "空格/其他 先定義; import string
def get_str(n):letters = 0space = 0digit = 0others = 0for a in n:if a.isalpha():     # 是否字母 letters += 1elif a.isspace():   # 是否空格space += 1elif a.isdigit():   # 是否數字digit += 1else: others += 1 print ('char = %d,space = %d,digit = %d,others = %d' % (letters,space,digit,others))
get_str("Kobe 8&24")

題目33:列表轉字符串

題目33:按逗號分隔列表。
""" 
L = [1,2,3,4,5]a = ','.join(str(i) for i in L )
print (a)L = repr(L)[1:-1]
print(L)

題目62:子串查找

題目62:查找字符串。   
""" 
分析: 基礎運用 
str_1 = 'abcdefg'
str_2 = 'cde'
print(str_1.find(str_2))

題目89:加密算法

題目89:某個公司采用公用電話傳遞數據,數據是四位的整數. 在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
""" 
分析: 即不斷賦值和替換的過程。 
n = 12345: 6789/10: 6789  # 題目表達不清 
交換: 9876 
n = str(input())
a = []
for i in range(4):a.append((int(n[i])+5)%10)
a[0],a[3] = a[3],a[0]
a[1],a[2] = a[2],a[1]
print("".join('%s' %s for s in a))

題目96:子串計數

題目96:計算字符串中子串出現的次數。
""" 
str1 = input("請輸入一個字符串:")
str2 = input("請輸入一個子字符串: ")
print(str1.count(str2))

題目98:大小寫轉換

題目98:從鍵盤輸入一個字符串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件"test"中保存。
""" 
import sys
str = input('請輸入一個字符串:\n')
with open('test1.txt','w') as f:f.write(str.upper())

題目60:字符串長度

題目60:計算字符串長度。  
""" 
str = 'abc'
print(len(str))

題目86:字符串連接

題目86:兩個字符串連接程序。
""" 
a = "Kobe"
b = "24"
c = a + b
print(c)

題目31:星期判斷

題目31:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。
""" 
分析: 
week=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
特殊情況即首字母為T 和S的情況,簡單判斷即可;  
fir = input("第1個字母:")
if fir == 'M':print("周一")
elif fir == 'W':print("周三")
elif fir == 'F':print("周五")
elif fir == 'T':s = input("第2個字母:")if s == 'u':print("周二")elif s == 'h':print("周四")
elif fir == 'S':s = input("第2個字母:")if s == 'a':print("周六")elif s == 'u':print("周日")
else :print("輸入錯誤")

三、列表與字典操作

題目5:三數排序

題目5:輸入三個整數x,y,z,請把這三個數由小到大輸出。
"""
def px_3(a,b,c):num = [a,b,c]num.sort()return numpx_3(1,8,2)

題目38:矩陣對角線

題目38:求一個3*3矩陣主對角線元素之和。
""" 
分析: 
1.主對角線元素之和 ---> 知道定義很重要 在一個n階方陣(或是n階行列式)中,從左上角到右下角這一斜線方向上的n個元素所在的對角線,叫做n階方陣(或行列式)的主對角線。
2.設置一個雙重for循環控制輸入二維數組,再將n[i][j]累加后輸出.# 未知矩陣
if __name__ == '__main__':a = []sum = 0.0for i in range(3):a.append([])for j in range(3):a[i].append(float(input("input num:\n")))for i in range(3):sum += a[i][i]print (sum)# 已知矩陣 
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
sum = 0
for i in range(0, 3):sum += m[i][i] 
print(sum)

題目44:矩陣相加

題目44:兩個 33 列的矩陣,實現其對應位置的數據相加,并返回一個新矩陣:
""" 
X = [[12,7,3],[4 ,5,6],[7 ,8,9]]
Y = [[5,8,1],[6,7,3],[4,5,9]]分析:38一樣; 
z = []
for i in range(3):z.append([]) 
for i in range(3):for j in range(3):z[i].append(x[i][j]+y[i][j])
print(z)

題目68:數組循環移位

題目68:有 n 個整數,使其前面各數順序向后移 m 個位置,最后 m 個數變成最前面的 m 個數
""" 
分析: 因為總長度不變,即最后一項變為第一個,最后第二個變為整數第二個即a[i] = a[i+m] , a[len(a)-1] = a[i]
邏輯和方法對了,其實就很簡單了 
a = [1,2,3,4,5,6,7]    # 測試列表
m = 5                  # 設置向后移動 3 位
for i in range(m):a.insert(0, a.pop())  # pop 剔除默認最后一位,insert加入指定位置指定數;
print(a)

題目69:約瑟夫環問題

題目69:有n個人圍成一圈,順序排號。從第一個人開始報數(從13報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。
""" 
n = [i+1 for i in range(20)]
i = 1 
while len(n) > 1:if i % 3 == 0:n.pop(0)else:n.insert(len(n),n.pop(0))   # 同68 考驗邏輯i += 1
print(n) 

題目72:創建鏈表

題目72:創建一個鏈表。
""" 
l=[ input("please input a number:\n") for i in range(5)]
print(l)

題目73:反向鏈表

題目73:反向輸出一個鏈表。
""" 
l=[ input("please input a number:\n") for i in range(5)]
l.reverse()
print(l)

題目100:列表轉字典

題目100:列表轉換為字典。
""" 
# 從列表創建字典
i = ['a','b','c']
l = [1,2,3]
b=dict(zip(i,l))
print(b)

題目39:數組插入排序

題目39:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。
""" 
分析: 題目其實說的不太明確,所以要挖掘隱藏條件: 已經排好序則代表按順序大小排, 新輸入的數,也需要從小到大排;所以思路整體上就是循環比大小; 
a = [1,2,3,5,6,7]
插入數字 4 
a.append(4)
sorted(a)但顯然題目考察的是希望自己能寫這個邏輯,純循環遇上數字較多的效率會比較低,所以可以折半選取再循環; 
a = [1,2,3,5,6,7]
b = 4
for i in range(len(a)-1):if b >= a[i] and b <= a[i+1]:a.insert(i+1, b)breakelif i == (len(a)-2):a.append(b)break
print(a)

題目67:數組極值交換

題目67:輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。
""" 
分析: 利用下標和max,min即可; a = [1,2,3,4,5]
for i in range(len(a)):if a[i] == max(a):a[0],a[i]=a[i],a[0]  # 不可分開寫,否則會變成[6, 3, 4, 5, 6] 先后賦值;if a[i] == min(a):a[len(a)-1],a[i]=a[i],a[len(a)-1]
print(a) # 法2 
a = [1,3,4,5,6]
print(a)
# 最小的放到最后
min = min(a)
a.remove(min)
a.append(min)
# 最大的放到最前面
max = max(a)
a.remove(max)
a.insert(0,max)
print(a)

題目79:字符串排序

題目79:字符串排序。
""" 
# 字符串輸入寄了 
L = []
L.sort()
print(L)

題目66:數組逆序輸出

題目66:輸入3個數a,b,c,按大小順序輸出。  
""" 
分析: 也沒懂這個題順序是怎么來的,感覺一堆亂... 
前面太多一樣的,這里就不寫了.. 

題目40:數組逆序

題目40:將一個數組逆序輸出。
""" 
分析:2932一樣,python3中直接可輸出;  
a = ["x","y","z"]
b = a[::-1]

四、文件操作

題目97:寫入文件

題目97:從鍵盤輸入一些字符,逐個把它們寫到磁盤文件上,直到輸入一個 # 為止。
""" 
filename = input('輸入文件名:\n')
fp = open(filename , "w+")
ch = ''
while '#' not in ch:fp.write(ch)ch = input('輸入字符串:\n')
fp.close()

題目98:文件保存

題目98:從鍵盤輸入一個字符串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件"test"中保存。
""" 
import sys
str = input('請輸入一個字符串:\n')
with open('test1.txt','w') as f:f.write(str.upper())

題目99:文件合并排序

題目99:有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列), 輸出到一個新文件C中。
""" 
with open('test1.txt') as f1, open('test2.txt') as f2, open('2.txt', 'w') as f3:for a in f1:b = f2.read()c = list(a + b)c.sort()d = ''d = d.join(c)f3.write(d)

五、日期時間處理

題目10:格式化時間

題目10:暫停一秒輸出,并格式化當前時間。
"""
# 主要考察time的使用 2個函數
# 獲取當前時間: time.localtime(time.time())
# 格式化時間: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) import time  
time.sleep(1)
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

題目16:日期輸出

題目16:輸出指定格式的日期。
"""
和第10題一樣,考驗datetime包的用法
import datetime
print(datetime.date.today()) 
print(datetime.date.today().strftime('%d/%m/%Y'))
print(datetime.date(1941,1,5))

題目95:日期解析

題目95:字符串日期轉換為易讀的日期格式。
""" 
from dateutil import parser
dt = parser.parse("Aug 24 2022 12:00AM")
print(dt)

題目91:時間函數示例1

題目91:時間函數舉例1""" 
import time
print time.ctime(time.time())
print time.asctime(time.localtime(time.time()))
print time.asctime(time.gmtime(time.time()))

題目92:時間函數示例2

題目92:時間函數舉例2""" 
import time
start = time.time()
for i in range(3000):print(i)
end = time.time()
print (end - start)

題目93:時間函數示例3

題目93:時間函數舉例3""" 
if __name__ == '__main__':import timestart = time.clock()for i in range(100):print(i)end = time.clock()print('different is %6.3f' % (end - start))

題目94:反應速度測試

題目94:時間函數舉例4,一個猜數游戲,判斷一個人反應快慢。 別看代碼長,其實不難
""" 
if __name__ == '__main__':import timeimport randomplay_it = input('do you want to play it.(\'y\' or \'n\')')while play_it == 'y':c = input('input a character:\n')i = random.randint(0,2**32) % 100print ('please input number you guess:\n')start = time.clock()a = time.time()guess = int(input('input your guess:\n'))while guess != i:if guess > i:print('please input a little smaller')guess = int(input('input your guess:\n'))else:print('please input a little bigger')guess = int(input('input your guess:\n'))end = time.clock()b = time.time()var = (end - start) / 18.2print (var)# print 'It took you %6.3 seconds' % time.difftime(b,a))if var < 15:print ('you are very clever!')elif var < 25:print ('you are normal!')else:print ('you are stupid!')print ('Congradulations')print ('The number you guess is %d' % i)play_it = input('do you want to play it.')

六、圖形繪制

題目56:圓形繪制

題目56:畫圖,學用circle畫圓形。  
""" 
分析: 主要為turtle包的使用 
import turtle
turtle.title("打開畫圖軟件")
turtle.setup(800,600,0,0)
pen=turtle.Turtle()
pen.color("blue")
pen.width(5)
pen.shape("turtle")
pen.speed(10)
pen.circle(100)

題目57:直線繪制

題目57:畫圖,學用line畫直線。
""" 
分析: 主要為turtle包的使用 
import turtle
def drawline(n):t=turtle.Pen()t.color(0.3,0.8,0.6)  #設置顏色,在0--1之間t.begin_fill()   #開始填充顏色for i in range(n): #任意邊形t.forward(50)t.left(360/n)t.end_fill()    #結束填充顏色
drawline(4)

題目58:方形繪制

題目58:畫圖,學用rectangle畫方形。   
""" 
分析: 考察tkinter包的使用
from tkinter import *
root = Tk()
root.title('Canvas')
canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')
x0 = 263
y0 = 263
y1 = 275
x1 = 275
for i in range(19):canvas.create_rectangle(x0,y0,x1,y1)x0 -= 5y0 -= 5x1 += 5y1 += 5
canvas.pack()
root.mainloop()

題目59:綜合圖形

題目59:畫圖,綜合例子。  
""" 
分析: 考察tkinter包的使用
if __name__  == '__main__':from Tkinter import *canvas = Canvas(width = 300,height = 300,bg = 'green')canvas.pack(expand = YES,fill = BOTH)x0 = 150y0 = 100canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)import mathB = 0.809for i in range(16):a = 2 * math.pi / 16 * ix = math.ceil(x0 + 48 * math.cos(a))y = math.ceil(y0 + 48 * math.sin(a) * B)canvas.create_line(x0,y0,x,y,fill = 'red')canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)for k in range(501):for i in range(17):a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * kx = math.ceil(x0 + 48 * math.cos(a))y = math.ceil(y0 + 48 + math.sin(a) * B)canvas.create_line(x0,y0,x,y,fill = 'red')for j in range(51):a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1x = math.ceil(x0 + 48 * math.cos(a))y = math.ceil(y0 + 48 * math.sin(a) * B)canvas.create_line(x0,y0,x,y,fill = 'red')mainloop()

題目63:橢圓繪制

題目63:畫橢圓。 
""" 
分析: 考察tkinter包的使用
if __name__ == '__main__':from Tkinter import *x = 360y = 160top = y - 30bottom = y - 30canvas = Canvas(width = 400,height = 600,bg = 'white')for i in range(20):canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom)top -= 5bottom += 5canvas.pack()mainloop()

題目64:圖形組合

"""
題目64:利用ellipse 和 rectangle 畫圖。。 
""" 
if __name__ == '__main__':from Tkinter import *canvas = Canvas(width = 400,height = 600,bg = 'white')left = 20right = 50top = 50num = 15for i in range(num):canvas.create_oval(250 - right,250 - left,250 + right,250 + left)canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))right += 5left += 5top += 10canvas.pack()mainloop()

題目65:藝術圖案

題目65:一個最優美的圖案。   
""" 
import math
class PTS:def __init__(self):self.x = 0self.y = 0
points = []def LineToDemo():from Tkinter import *screenx = 400screeny = 400canvas = Canvas(width = screenx,height = screeny,bg = 'white')AspectRatio = 0.85MAXPTS = 15h = screenyw = screenxxcenter = w / 2ycenter = h / 2radius = (h - 30) / (AspectRatio * 2) - 20step = 360 / MAXPTSangle = 0.0for i in range(MAXPTS):rads = angle * math.pi / 180.0p = PTS()p.x = xcenter + int(math.cos(rads) * radius)p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)angle += steppoints.append(p)canvas.create_oval(xcenter - radius,ycenter - radius,xcenter + radius,ycenter + radius)for i in range(MAXPTS):for j in range(i,MAXPTS):canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)canvas.pack()mainloop()if __name__ == '__main__':LineToDemo()

題目23:菱形打印

題目23:打印出如下圖案(菱形):*********
****************
""" 
def pic(n):for i in range(0,n):a = abs(i - int(n/2))b = n - abs(i - int(n/2))print(" "*a+"*"*(b-a))
pic(7)

七、算法與數據結構

題目6:斐波那契數列

題目6:斐波那契數列(Fibonacci sequence),又稱黃金分割數列,指的是這樣一個數列:0112358132134、……。
"""
從第3個數起,每一個數等于前2個數的和; 
num = f(n-1)+f(n-2) (n>=2)def Fibonacci_sequence(n):a, b = 0, 1while n>0:a, b, n = b, a + b, n - 1print(a)
Fibonacci_sequence(10)

題目12:素數篩選

題目12:判斷101-200之間有多少個素數,并輸出所有素數。    
"""
分析: 
判斷素數x方法:2-->(x-1)之間能有一個數被整除 則非素數; num = []
for a in range(101,200):for b in range(2,a-1):if a%b == 0 :break else:            # 這里位置不能寫錯,不然容易陷入無限循環; num.append(a)
print(num) 

題目20:小球彈跳計算

題目20:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?
""" 落下高度 返回高度 落地時經過距離 
第一次   100     50     100 
第二次    50     25     100 + 100 = 200 
第三次    25     12.5   50  + 100 + 100 = 250 
第四次    12.5   6.25   25  + 100 + 100 +50 = 275  
可以看到規律  
第n次   分析找出規律即可  def fall(n):height = 100far = 100for i in range(2, n+1):far = far + heightheight = height / 2return far,height/2
fall(10) 

題目22:比賽名單排列

題目22:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。
""" 
分析: 直接可以得出答案,c和y, a和z,b和x ,用變成實現則將判斷邏輯寫下即可; 
for a in ['x','y','z']:for b in ['x', 'y', 'z']:for c in ['x', 'y', 'z']:if(a!=b)and(b!=c)and(c!=a) and (a!='x') and (c!='x') and (c!='z'):print('a和%s比賽,b和%s比賽,c和%s比賽' %(a,b,c))2: 
m=['a','b','c']
n=['x','y','z']
L=[]
for i in range(0,3):for j in range(0,3):L.append(m[i]+n[j])
L.remove('ax')   
L.remove('ay')
L.remove('by')
L.remove('bz')
L.remove('cx')
L.remove('cz')
print(L) 

題目61:楊輝三角生成

題目61:打印出楊輝三角形(要求打印出10行如下圖)。  
""" 
分析: 首先要理解什么是楊輝三角,這是非常經典的一個題目; 
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1 
1 6 15 20 15 6 1 
1 7 21 35 35 21 7 1 
1 8 28 56 70 56 28 8 1 
楊輝三角的特性: 
1.第n行的m個數可表示為 C(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。
2.每個數字等于上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等于第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 C(n+1,i)=C(n,i)+C(n,i-1)def Yh_triangles():L = [1]while True:yield LL = [sum(i) for i in zip([0]+L, L+[0])]def Yh_triangles(num = 10):L = [[1]]for i in range(1,num):L.append([(0 if j== 0 else L[i-1][j-1])+ (0 if j ==len(L[i-1]) else L[i-1][j]) for j in range(i+1)])return L

題目76:分段函數計算

題目76:編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數1/1+1/3+...+1/n
""" 
# 比較簡單,直接上代碼 
def num(n):sum = 0if n%2 == 0 :for i in range(1,int(n/2)+1):sum += 1/(2*i)return sum if n%2 != 0 :for i in range(1,int((n+1)/2)+1):  sum += 1/(2*i-1) return sum 
num(5)  # 同理,應用range()的步長會更高效; 
def num(n):sum_tmp = [1/i for i in range(n,0,-2)]return sum(sum_tmp) 
num(4) 

題目77:循環輸出列表

題目77:循環輸出列表
""" 
ls = ['Kobe','24','8']
for i in range(len(ls)):print(ls[i])

題目78:最大年齡查找

題目78:找到年齡最大的人,并輸出。請找出程序中有什么問題。
""" 
person_age = {"li":18,"wang":50,"zhang":20,"sun":22}
def get_max(dict):max_age = 0for key, value in dict.items():if value > max_age:max_age = valuename = keyprint(name)print(max_age)
get_max(person_age)

題目84:列表極值交換

題目84:連接字符串。
""" 
list1 = ['Kobe','8','24']
list2 = ['Iverson','3']
print(list1 + list2)

題目8:九九乘法表

題目8:輸出 9*9 乘法口訣表。
"""
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6  3*3=9
4*1=4 4*2=8  4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81for a in range(1,10):for b in range(1,10):print( str(a),"*",str(b),"=",a*b )

題目9:延時輸出

題目9:暫停一秒輸出。
程序分析:使用 time 模塊的 sleep() 函數。
"""
# 沒有具體要求,能實現延遲即可; 
import time id = [1,2,3]
for i in range(len(id)):print(i)time.sleep(2)

題目14:質因數分解

題目14:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5"""
分析:
要找出全部因數比較容易,第一次寫輸出的是[235],沒有考慮到重復因子的情況,所以要加while判斷的邏輯;def get_factor(n):print ('{} = '.format(n), end=" ")if not isinstance(n, int) or n <= 0 :  # 判斷變量是否是已知字段類型, 字符串可迭代 print ('請輸入一個正確的數字 !')exit(0) elif n in [1] :print ('{}'.format(n))while n not in [1] : # 循環保證遞歸for a in range(2, n + 1) : if n % a == 0: n //= a    if n == 1:      # 這步很重要,判斷關鍵 print (a)else : # index 一定是素數print ('{} *'.format(a), end=" ")break
get_factor(10) 

題目15:成績分級

題目15:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
"""
def score(n):if n>=90:print("A")elif 60<n<=89:print("B")else:print("C")
score(90)

八、位運算

題目51:按位與

題目51-53:學習使用按位與&, 按位或 |, 按位異或 ^ 
""" 
按位與: &  雙目運算符.其功能是參與運算的兩數各對應的二進位相與.只有對應的兩個二進位都為1,結果位才為1.參與運算的兩個數均以補碼出現.
按位或: |  雙目運算符.只有對應的兩個二進位都為1,結果位才為1
按位異或:  如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
取反 : ~  在補碼表示中,最高位為符號位,正數的符號位為0,負數為1
右移 : >>
左移 : << 分析: 0&0=0; 0&1=0; 1&0=0; 1&1=1  
分析: 0|0=0; 0|1=1; 1|0=1; 1|1=1
分析: 0^0=0; 0^1=1; 1^0=1; 1^1=0

題目52:按位或

同上

題目53:按位異或

同上

題目54:位截取

題目54:取一個整數a從右端開始的4?7位。
""" 
分析: 
首先這個整數得滿足>=7位,然后取右端開始的4-7, 考核截取字符串; num = input("輸入整數: ")
num = list(num)[-7:-3]舉一反三: 
str = '0123456789'
print(str[:])        # 截取字符串的全部字符
print(str[0:3])      # 截取第1位到第3位的字符
print(str[6:])       # 截取第7個字符到結尾
print(str[:-3])      # 截取從頭開始到倒數第3個字符之前
print(str[2])        # 截取第3個字符
print(str[-1])       # 截取倒數第1個字符
print(str[::-1])     # 創造1個與原字符串順序相反的字符串
print(str[-3:-1])    # 截取倒數第3位到倒數第1位之前的字符
print(str[-3:])      # 截取倒數第3位到結尾
print(str[:-5:-2])   # 逆序截取==> 先截取,再進行逆序.逆序為下標 https://blog.csdn.net/weixin_41613094/article/details/122325983?spm=1001.2014.3001.5501
value: 
012
0123456789
6789
0123456
2
9
9876543210
78
789
97逆襲截取解釋: 
str = 'abcdefghijklmn'
位置編號: 012345678910111213
對應編號: -14-13-12-11-10-9-8-7-6-5-4-3-2-1# 官方方法
分析: 
(1)先使a右移4位。
(2)設置一個低4位全為1,其余全為0的數。可用~(~0<<4)
(3)將上面二者進行&運算。
a = int(input('輸入一個數字: '))
b = 0        #     0
b = ~b       #     1
b = b<<4     # 10000
b = ~b       #  1111
c = a>>4
d = c&b
print('a:',bin(a))
print('b:',bin(b))
print('c:',bin(c))
print('d:',bin(d))

題目55:按位取反

題目55:學習使用按位取反~""" 
二進制數在內存中以補碼的形式存儲。
按位取反:二進制每一位取反,0110。
最高位為符號位,正數的符號位為 0,負數為 1。
對正數來說,最高位為 0,其余各位代表數值本身(以二進制表示),如 +42 的補碼為 00101010。
對負數而言,把該數絕對值的補碼按位取反,然后對整個數加 1,即得該數的補碼。如 -42 的補碼為 11010110(00101010 按位取反
11010101+111010110)~9 的計算步驟:
轉二進制:0 1001
計算補碼:0 1001
按位取反:1 0110
轉為源碼: 
按位取反:1 1001  
末位加 11 1010
符號位為 1 是負數,即 -10a = 7
b = ~a   # -8
c = -7
d = ~c   # 6 
print ('變量 a 取反結果為: %d' % b)
print ('變量 c 取反結果為: %d' % d)

題目82:八進制轉十進制

題目82:八進制轉換為十進制
""" 
n = 0
p = input('input a octal number:\n')
for i in range(len(p)):n = n * 8 + ord(p[i]) - ord('0')
print(n) 

九、其他編程問題

題目27:遞歸逆序

題目27:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。
""" 
分析: 相反順序,加個負號即可解決; 
def desc_string(s):if(len(s) > 0):print(s[-1])         desc_string(s[0:-1])    
desc_string("abcde")

題目29:數字拆分統計

題目29:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
""" 
分析: 本質考察如何拆解字符串
# 最簡單寫法 
tmp = input("輸入一個數字")
len(tmp) 
list(tmp)[::-1]    # list可拆解字符串
str(tmp)[::-1]     # str 不拆解# 普通寫法 
n = int(input("請輸入一個數:\n"))
a = n%10000     # 萬位
b = (n/1000)%10 # 千位 
c = (n/100)%10  # 百位 
d = (n/10)%10   # 十位 
e = (n/1)%10    # 個位 
if a != 0:print ("5 位數:",e,d,c,b,a)
elif b != 0:print ("4 位數:",e,d,c,b)
elif c != 0:print ("3 位數:",e,d,c)
elif d != 0:print ("2 位數:",e,d)
else:print ("1 位數:",e)

題目30:回文數判斷

題目30:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。
""" 
分析:29def is_hw(tmp):tmp = list(tmp)if tmp[0] == tmp[4] and tmp[1] == tmp[3]:print("是")else :print("不是")
is_hw("12321") 

題目32:列表逆序輸出

題目32:按相反的順序輸出列表的值。
""" 
分析: 同樣的考察字符串處理; 
a = ["x","y","z"]
b = a[::-1]

題目34:三次輸出函數

題目34:使用函數,輸出三次 RUNOOB 字符串。
""" 
分析: 考察def的寫法: 
def reo_3():for i in range(1,4):print("RUNOOB")
reo_3()

題目35:文本顏色設置

題目35:文本顏色設置。
""" 
分析: 這個不會了...啊,好吧.. 系統設定顏色 
class bcolors:HEADER = '\033[95m'OKBLUE = '\033[94m'OKGREEN = '\033[92m'WARNING = '\033[93m'FAIL = '\033[91m'ENDC = '\033[0m'BOLD = '\033[1m'UNDERLINE = '\033[4m'
print (bcolors.WARNING + "警告的顏色字體?" + bcolors.ENDC)

題目36:素數篩選

題目36:求100之內的素數。
""" 
分析:12題做過如何判斷素數,一模一樣; 
num = []
for a in range(1,100):for b in range(2,a-1):if a%b == 0 :break else:            # 這里位置不能寫錯,不然容易陷入無限循環; num.append(a)
print(num) 

題目37:十數排序

題目37:對10個數進行排序。
""" 
分析: 和第五題一樣
依次輸入10個數字; 
def px_3(a,b,c....):num = [a,b,c]num.sort()return num同樣方法:
num=[] 
for i in range(1,11):a=int(input('int%d: '%(i)))num.append(a)
num.sort()

題目41:靜態變量

題目41:模仿靜態變量的用法。
""" 
分析: 官方寫法參考 
def varfunc():var = 0print ('var = %d' % var)var += 1
if __name__ == '__main__':for i in range(3):varfunc()# 類的屬性
# 作為類的一個屬性吧
class Static:StaticVar = 5def varfunc(self):self.StaticVar += 1print (self.StaticVar)print (Static.StaticVar)
a = Static()
for i in range(3):a.varfunc()

題目42:自動變量

題目42:學習使用auto定義變量的用法。
""" 
分析: 官方寫法參考 
num = 2
def autofunc():num = 1print ('internal block num = %d' % num)num += 1
for i in range(3):print ('The num = %d' % num)num += 1autofunc()

題目43:靜態變量案例

題目43:模仿靜態變量(static)另一案例。
""" 
分析:41
class Num:nNum = 1def inc(self):self.nNum += 1print ('nNum = %d' % self.nNum)if __name__ == '__main__':nNum = 2inst = Num()for i in range(3):nNum += 1print ('The num = %d' % nNum)inst.inc()

題目45:數字累加

題目45:統計 1100 之和。
""" 
a = 100 
b = 1
sum = (a+b)*50

題目46:平方閾值判斷

題目46:求輸入數字的平方,如果平方運算后小于 50 則退出。
""" 
while True:x = int(input('input a num :'))x *= xprint('結果為:{}'.format(x))if x > 50:breakdef is_50(n):if 判斷即可; 

題目47:變量交換

題目47:兩個變量值互換。
""" 
def exchange(a,b):a,b = b,areturn a,b

題目48:數字比較

題目48:數字比較。
""" 
分析: 簡單比較3種情況即可
def compare(a,b):if a>b:...簡單比較即可
compare(2,2)

題目49:匿名函數

題目49:使用lambda來創建匿名函數。
""" 
分析: 沒規定函數內容,任意都可,主要了解lambda(即λ)是啥; lambda x,y:x+y   # 參數x,y : 后跟函數 
https://www.runoob.com/python/python-functions.html
S = lambda x,y:x+y
S(10,20)

題目50:隨機數生成

題目50:輸出一個隨機數。
""" 
分析: https://www.runoob.com/python/func-number-random.html
import random
print (random.uniform(10, 20))  #生成 10 到 20 之間的隨機數
random.uniform(10, 20) 

題目71:學生數據IO

題目87:結構體變量傳遞

題目87:回答結果(結構體變量傳遞)。
""" 
if __name__ == '__main__':class student:x = 0c = 0def f(stu):stu.x = 20stu.c = 'c'a= student()a.x = 3a.c = 'a'f(a)print a.x,a.c

題目88:星號打印

題目88:讀取7個數(150)的整數值,每讀取一個值,程序打印出該值個數的*。
""" 
分析: 值為多少,取多少個*即可; 
for i in range(3):print('*'*int(input('input a number: ')))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76946.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76946.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【linux】--- 進程概念

進程概念 1.認識馮諾依曼結構2. 操作系統&#xff08;Operator system)2.1 概念2.2 設計OS的目的2.3 理解操作系統2.4 如何理解管理2.5 理解系統調用和庫函數 3. 進程3.1 基本概念和基本操作3.1.1 描述進程 - PCB3.1.2 task_struct3.1.3 查看進程 3.2 進程狀態3.2.1 運行&&…

算法堆排序記錄

【算法】排序算法之堆排序 - 知乎 應用場景&#xff1a;獲取第n個大或者小的數 操作步驟&#xff1a; 1、將數組構造成堆 2、調整根節點為最大堆 ->倒序對每個根節點執行最大化 ->根節點最大化過程中如果發生交換&#xff0c;需要保證子節點也為最大堆&#xff08;執行…

STM32 模塊化開發實戰指南:系列介紹

本文是《STM32 模塊化開發實戰指南》系列的導讀篇,旨在介紹整個系列的寫作目的、適用讀者、技術路徑和每一篇的主題規劃。適合從事 STM32、裸機或 RTOS 嵌入式開發的個人開發者、初創工程師或企業項目團隊。 為什么要寫這個系列? 在嵌入式開發中,很多人剛開始都是從點亮一個…

【眼底輔助診斷開放平臺】項目筆記

這是一個標題 任務一前端頁面開發&#xff1a;后端接口配置&#xff1a; 任務二自行部署接入服務 日志修改樣式和解析MD文檔接入服務 Note前端登陸不進去/更改后端api接口304 Not Modifiedlogin.cache.jsonERR_CONNECTION_TIMED_OUT跨域一般提交格式proxy.ts src/coponents 目錄…

【后端開發】Spring MVC-計算器、用戶登錄、留言板

文章目錄 前后端分離設計接口設計思路項目問題解決思路 計算器需求分析接口定義前端頁面代碼服務器代碼 用戶登錄需求分析接口定義用戶登錄校驗接口查詢登錄用戶接口 前端頁面代碼用戶登錄校驗查詢登錄用戶 服務器代碼前后端交互 留言版需求分析接口定義獲取全部留言發布留言前…

在Ubuntu-22.04.5中安裝ONLYOFFICE DocSpace(協作空間)【注意:安裝失敗,謹慎參考!】

1. 通過Docker安裝 預計需要下載10G的鏡像。 &#xff08;1&#xff09;下載docspace安裝腳本 curl -fsSL https://download.onlyoffice.com/docspace/docspace-install.sh -o docspace-install.sh &#xff08;2&#xff09;修改docker compose的別名為docker-compose ali…

2025年計算機領域重大技術突破與行業動態綜述

——前沿技術重塑未來&#xff0c;開發者如何把握機遇&#xff1f; 2025年第一季度&#xff0c;全球計算機領域迎來多項里程碑式進展&#xff0c;從量子計算到人工智能&#xff0c;從芯片設計到網絡安全&#xff0c;技術革新與產業融合持續加速。本文梳理近三個月內最具影響力…

一、LLM 大語言模型初窺:起源、概念與核心原理

一、初識大模型 1.1 人工智能演進與大模型興起:從A11.0到A12.0的變遷 AI 1.0時代&#xff08;2012-2022年&#xff09; 感知智能的突破&#xff1a;以卷積神經網絡&#xff08;CNN&#xff09;為核心&#xff0c;AI在圖像識別、語音處理等感知任務中超越人類水平。例如&#…

Redis 分布式鎖+秒殺異步優化

文章目錄 問題思路setnx實現鎖誤刪問題和解決方案Redis Lua腳本問題引出解決方案 setnx實現的問題Redission快速入門redission可重入鎖原理 秒殺優化(異步優化)異步秒殺思路秒殺資格判斷Redis消息隊列 問題 比如我們兩個機器都部署了我們項目&#xff0c;這里nginx使用輪詢的方…

機器學習中的距離度量與優化方法:從曼哈頓距離到梯度下降

目錄 前言一、曼哈頓距離(Manhattan Distance)&#xff1a;二、切比雪夫距離 (Chebyshev Distance)&#xff1a;三、 閔可夫斯基距離(Minkowski Distance)&#xff1a;小結四、余弦距離(Cosine Distance)五、杰卡德距離(Jaccard Distance)六、交叉驗證方法6.1 HoldOut Cross-v…

HTML 嵌入標簽對比:小眾(<embed>、<object>) 與 <iframe> 的優缺點及使用場景和方式

需求背景 在網頁開發中&#xff0c;嵌入外部資源預覽&#xff08;如視頻、PDF、地圖或其他網頁&#xff09;是常見的需求。HTML 提供了多種標簽來實現這一功能&#xff0c;其中 <embed>、<object> 和 <iframe> 是最常用的三種。本文將對比它們的優缺點&…

未來七軸機器人會占據主流?深度解析具身智能方向當前六軸機器人和七軸機器人的區別,七軸力控機器人發展會加快嗎?

六軸機器人和七軸機器人在設計、功能和應用場景上存在明顯區別。六軸機器人是工業機器人的傳統架構&#xff0c;而七軸機器人則在多自由度和靈活性方面進行了增強。 本文將在理解這兩者的區別以及為何六軸機器人仍然是市場主流&#xff0c;從多個方面進行深入解讀六軸和七軸區…

C++基礎精講-07

文章目錄 1. const對象2. 指向對象的指針3. 對象數組4. c中const常見用法總結4.1 修飾常量4.2 修飾指針4.3 修飾函數參數4.4 修飾函數返回值4.5 修飾成員函數4.6 const對象 5. 賦值運算符函數&#xff08;補充&#xff09;5.1 概念5.2 默認賦值運算符函數局限5.3 解決辦法 1. c…

軟件測試之接口測試用例設計

1.接口測試用例設計簡介 我們對系統的需求分析完成之后&#xff0c;即可設計對應的接口測試用例&#xff0c;然后用接口測試用例進行接口測試。接口測試用例的設計也需要用到黑盒測試方法&#xff0c;其與功能測試用例設計的方法類似&#xff0c;接口測試用例設計中還需要增加…

(2)VTK C++開發示例 --- 繪制多面錐體

文章目錄 1. 概述2. CMake鏈接VTK3. main.cpp文件4. 演示效果 更多精彩內容&#x1f449;內容導航 &#x1f448;&#x1f449;VTK開發 &#x1f448; 1. 概述 VTK C開發示例程序&#xff1b; 使用C 和VTK繪制一個多面錐體。 環境說明系統ubuntu22.04、windows11cmake3.22、3.2…

公司內部自建知識共享的方式分類、詳細步驟及表格總結,分為開源(對外公開)和閉源(僅限內部),以及公共(全員可訪問)和內部(特定團隊/項目組)四個維度

以下是公司內部自建知識共享的方式分類、詳細步驟及表格總結&#xff0c;分為開源&#xff08;對外公開&#xff09;和閉源&#xff08;僅限內部&#xff09;&#xff0c;以及公共&#xff08;全員可訪問&#xff09;和內部&#xff08;特定團隊/項目組&#xff09;四個維度&am…

DeepSeek使用001:Word中配置DeepSeek AI的V3和R1模型

文章目錄 Word中配置DeepSeek大模型1、勾選開發工具2、信任中心設置3、添加DeepSeek-V3模型4、獲取API KEY5、添加DeepSeek-R1模型6、新建組7、測試使用 Word中配置DeepSeek大模型 1、勾選開發工具 打開【選項】 選擇【自定義功能區】 2、信任中心設置 打開【信任中心】&…

Spark-SQL核心編程語言

利用IDEA開發spark-SQL 創建spark-SQL測試代碼 自定義函數UDF 自定義聚合函數UDAF 強類型的 Dataset 和弱類型的 DataFrame 都提供了相關的聚合函數&#xff0c; 如 count()&#xff0c; countDistinct()&#xff0c;avg()&#xff0c;max()&#xff0c;min()。除此之外&…

從圖像“看出動作”

&#x1f4d8; 第一部分&#xff1a;運動估計&#xff08;Motion Estimation&#xff09; &#x1f9e0; 什么是運動估計&#xff1f; 簡單說&#xff1a; &#x1f449; 給你一段視頻&#xff0c;計算機要“看懂”里面什么東西動了、往哪動了、有多快。 比如&#xff1a; 一…

Spring Boot 使用 SMB 協議

2025/4/14 向全棧工程師邁進&#xff01; 一、詳述SMB協議 SMB&#xff08;Server Message Block&#xff09;協議是一個網絡文件共享協議&#xff0c;它使得計算機可以在網絡中共享文件、打印機以及其他資源。SMB 主要用于 Windows 操作系統&#xff0c;但也有其他平臺&#…