主頁 > 後端開發 > 墻裂建議收藏,100道Python練手題目

墻裂建議收藏,100道Python練手題目

2021-02-05 14:21:10 後端開發

Python3 100例

原題地址:
http://www.runoob.com/python/python-100-examples.html
原例為py2.7版本
重寫程序中有不少是隨意發揮的
重寫運行版本:Python3.7

實體001:數字組合

題目有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?

程式分析遍歷全部可能,把有重復的剃掉,

total=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if ((i!=j)and(j!=k)and(k!=i)):
                print(i,j,k)
                total+=1
print(total)

**簡便方法:**用itertools中的permutations即可,

import itertools
sum2=0
a=[1,2,3,4]
for i in itertools.permutations(a,3):
    print(i)
    sum2+=1
print(sum2)

實體002:“個稅計算”

題目企業發放的獎金根據利潤提成,利潤(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,求應發放獎金總數?

程式分析磁區間計算即可,

profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):
    if profit<=thresholds[i]:
        bonus+=profit*rates[i]
        profit=0
        break
    else:
        bonus+=thresholds[i]*rates[i]
        profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)

實體003:完全平方數

題目一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?

程式分析因為168對于指數爆炸來說實在太小了,所以可以直接省略數學分析,用最樸素的方法來獲取上限:

n=0
while (n+1)**2-n*n<=168:
    n+=1

print(n+1)
----------

85

思路是:最壞的結果是n的平方與(n+1)的平方剛好差168,由于是平方的關系,不可能存在比這更大的間隙,
至于判斷是否是完全平方數,最簡單的方法是:平方根的值小數為0即可,
結合起來:

n=0
while (n+1)**2-n*n<=168:
    n+=1

for i in range((n+1)**2):
    if i**0.5==int(i**0.5) and (i+168)**0.5==int((i+168)**0.5):
        print(i-100)

實體004:這天第幾天

題目輸入某年某月某日,判斷這一天是這一年的第幾天?

程式分析特殊情況,閏年時需考慮二月多加一天:

def isLeapYear(y):
    return (y%400==0 or (y%4==0 and y%100!=0))
DofM=[0,31,28,31,30,31,30,31,31,30,31,30]
res=0
year=int(input('Year:'))
month=int(input('Month:'))
day=int(input('day:'))
if isLeapYear(year):
    DofM[2]+=1
for i in range(month):
    res+=DofM[i]
print(res+day)

實體005:三數排序

題目輸入三個整數x,y,z,請把這三個數由小到大輸出,

程式分析練練手就隨便找個排序演算法實作一下,偷懶就直接調函式,

raw=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw.append(x)
    
for i in range(len(raw)):
    for j in range(i,len(raw)):
        if raw[i]>raw[j]:
            raw[i],raw[j]=raw[j],raw[i]
print(raw)


raw2=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw2.append(x)
print(sorted(raw2))

實體006:斐波那契數列

題目斐波那契數列,

程式分析斐波那契數列(Fibonacci sequence),從1,1開始,后面每一項等于前面兩項之和,圖方便就遞回實作,圖性能就用回圈,

# 遞回實作
def Fib(n):
    return 1 if n<=2 else Fib(n-1)+Fib(n-2)
print(Fib(int(input())))
    
# 樸素實作
target=int(input())
res=0
a,b=1,1
for i in range(target-1):
    a,b=b,a+b
print(a)

實體007:copy

題目將一個串列的資料復制到另一個串列中,

程式分析使用串列[:],拿不準可以呼叫copy模塊,

import copy
a = [1,2,3,4,['a','b']]

b = a					# 賦值
c = a[:]				# 淺拷貝
d = copy.copy(a)		# 淺拷貝
e = copy.deepcopy(a)	# 深拷貝

a.append(5)
a[4].append('c')

print('a=',a)
print('b=',b)
print('c=',c)
print('d=',d)
print('e=',e)

============ RESTART: F:\PyWorkspace\Python100\100examples\007.py ============
a= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c= [1, 2, 3, 4, ['a', 'b', 'c']]
d= [1, 2, 3, 4, ['a', 'b', 'c']]
e= [1, 2, 3, 4, ['a', 'b']]

實體008:九九乘法表

題目輸出 9*9 乘法口訣表,

程式分析分行與列考慮,共9行9列,i控制行,j控制列,

for i in range(1,10):
    for j in range(1,i+1):
        print('%d*%d=%2ld '%(i,j,i*j),end='')
    print()

實體009:暫停一秒輸出

題目暫停一秒輸出,

程式分析使用 time 模塊的 sleep() 函式,

import time
for i in range(4):
    print(str(int(time.time()))[-2:])
    time.sleep(1)

實體010:給人看的時間

題目暫停一秒輸出,并格式化當前時間,

程式分析同009.

import time

for i in range(4):
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
    time.sleep(1)

實體011:養兔子

題目有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

程式分析我認為原文的解法有點扯,沒有考慮3個月成熟的問題,人家還是嬰兒怎么生孩子?考慮到三個月成熟,可以構建四個資料,其中:一月兔每個月長大成為二月兔,二月兔變三月兔,三月兔變成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔,

month=int(input('繁殖幾個月?: '))
month_1=1
month_2=0
month_3=0
month_elder=0
for i in range(month):
    month_1,month_2,month_3,month_elder=month_elder+month_3,month_1,month_2,month_elder+month_3
    print('第%d個月共'%(i+1),month_1+month_2+month_3+month_elder,'對兔子')
    print('其中1月兔:',month_1)
    print('其中2月兔:',month_2)
    print('其中3月兔:',month_3)
    print('其中成年兔:',month_elder)

實體012:100到200的素數

題目判斷101-200之間有多少個素數,并輸出所有素數,

程式分析判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數,

import math
for i in range(100,200):
    flag=0
    for j in range(2,round(math.sqrt(i))+1):
        if i%j==0:
            flag=1
            break
    if flag:
        continue
    print(i)


print('\nSimplify the code with "else"\n')


for i in range(100,200):
    for j in range(2,round(math.sqrt(i))+1):
        if i%j==0:
            break
    else:
        print(i)

實體013:所有水仙花數

題目列印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等于該數本身,例如:153是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方,

程式分析利用for回圈控制100-999個數,每個數分解出個位,十位,百位,

for i in range(100,1000):
    s=str(i)
    one=int(s[-1])
    ten=int(s[-2])
    hun=int(s[-3])
    if i == one**3+ten**3+hun**3:
        print(i)

實體014:分解質因數

題目將一個整數分解質因數,例如:輸入90,列印出90=233*5,

程式分析根本不需要判斷是否是質數,從2開始向數本身遍歷,能整除的肯定是最小的質數,

target=int(input('輸入一個整數:'))
print(target,'= ',end='')

if target<0:
    target=abs(target)
    print('-1*',end='')

flag=0
if target<=1:
    print(target)
    flag=1


while True:
    if flag:
        break
    for i in range(2,int(target+1)):
        if target%i==0:
            print("%d"%i,end='')
            if target==i:
                flag=1
                break
            print('*',end='')
            target/=i
            break
        

實體015:分數歸檔

題目利用條件運算子的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示,

程式分析用條件判斷即可,

points=int(input('輸入分數:'))
if points>=90:
    grade='A'
elif points<60:
    grade='C'
else:
    grade='B'
print(grade)

實體016:輸出日期

題目輸出指定格式的日期,

程式分析使用 datetime 模塊,

import datetime
print(datetime.date.today())
print(datetime.date(2333,2,3))
print(datetime.date.today().strftime('%d/%m/%Y'))
day=datetime.date(1111,2,3)
day=day.replace(year=day.year+22)
print(day)

實體017:字串構成

題目輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數,

程式分析利用 while 或 for 陳述句,條件為輸入的字符不為 ‘\n’,

string=input("輸入字串:")
alp=0
num=0
spa=0
oth=0
for i in range(len(string)):
    if string[i].isspace():
        spa+=1
    elif string[i].isdigit():
        num+=1
    elif string[i].isalpha():
        alp+=1
    else:
        oth+=1
print('space: ',spa)
print('digit: ',num)
print('alpha: ',alp)
print('other: ',oth)

實體018:復讀機相加

題目求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字,例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制,

程式分析用字串解決,

a=input('被加數字:')
n=int(input('加幾次?:'))
res=0
for i in range(n):
    res+=int(a)
    a+=a[0]
print('結果是:',res)

實體019:完數

題目一個數如果恰好等于它的因子之和,這個數就稱為"完數",例如6=1+2+3.編程找出1000以內的所有完數,

程式分析將每一對因子加進集合,在這個程序中已經自動去重,最后的結果要求不計算其本身,

def factor(num):
    target=int(num)
    res=set()
    for i in range(1,num):
        if num%i==0:
            res.add(i)
            res.add(num/i)
    return res

for i in range(2,1001):
    if i==sum(factor(i))-i:
        print(i)

實體020:高空拋物

題目一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經過多宣告?第10次反彈多高?

程式分析

high=200.
total=100
for i in range(10):
    high/=2
    total+=high
    print(high/2)
print('總長:',total)

實體021:猴子偷桃

題目猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個,以后每天早上都吃了前一天剩下的一半零一個,到第10天早上想再吃時,見只剩下一個桃子了,求第一天共摘了多少,

程式分析按規則反向推斷:猴子有一個桃子,他偷來一個桃子,覺得不夠又偷來了與手上等量的桃子,一共偷了9天,

peach=1
for i in range(9):
    peach=(peach+1)*2
print(peach)

實體022:比賽對手

題目兩個乒乓球隊進行比賽,各出三人,甲隊為a,b,c三人,乙隊為x,y,z三人,已抽簽決定比賽名單,有人向隊員打聽比賽的名單,a說他不和x比,c說他不和x,z比,請編程式找出三隊賽手的名單,

程式分析找到條件下不重復的三個對手即可,

a=set(['x','y','z'])
b=set(['x','y','z'])
c=set(['x','y','z'])
c-=set(('x','z'))
a-=set('x')
for i in a:
    for j in b:
        for k in c:
            if len(set((i,j,k)))==3:
                print('a:%s,b:%s,c:%s'%(i,j,k))

實體023:畫菱形

題目列印出如下圖案(菱形):

*
***
*****
*******
*****
***
*

程式分析遞回呼叫即可,

def draw(num):
    a="*"*(2*(4-num)+1)
    print(a.center(9,' '))
    if num!=1:
        draw(num-1)
        print(a.center(9,' '))
draw(4)

實體024:斐波那契數列II

題目有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13…求出這個數列的前20項之和,

程式分析就是斐波那契數列的后一項除以前一項,

a = 2.0
b = 1.0
s = 0
for n in range(1,21):
    s += a / b
    a,b = a + b,a
print (s)

實體025: 階乘求和

題目求1+2!+3!+…+20!的和,

程式分析1+2!+3!+…+20!=1+2(1+3(1+4(…20(1))))

res=1
for i in range(20,1,-1):
    res=i*res+1
print(res)

實體026:遞回求階乘

題目利用遞回方法求5!,

程式分析遞回呼叫即可,

def factorial(n):
    return n*factorial(n-1) if n>1 else 1
print(factorial(5))

實體027:遞回輸出

題目利用遞回函式呼叫方式,將所輸入的5個字符,以相反順序列印出來,

程式分析遞回真是蠢方法,

def rec(string):
    if len(string)!=1:
        rec(string[1:])
    print(string[0],end='')

rec(input('string here:'))

實體028:遞回求等引數列

題目有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲,問第4個人歲數,他說比第3個人大2歲,問第三個人,又說比第2人大兩歲,問第2個人,說比第一個人大兩歲,最后問第一個人,他說是10歲,請問第五個人多大?

程式分析就一等引數列,

def age(n):
    if n==1:
        return 10
    return 2+age(n-1)
print(age(5))

實體029:反向輸出

題目給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序列印出各位數字,

程式分析學會分解出每一位數,用字串的方法總是比較省事,

n=int(input('輸入一個正整數:'))
n=str(n)
print('%d位數'%len(n))
print(n[::-1])

實體030:回文數

題目一個5位數,判斷它是不是回文數,即12321是回文數,個位與萬位相同,十位與千位相同,

程式分析用字串比較方便,就算輸入的不是數字都ok,

n=input("隨便你輸入啥啦:")
a=0
b=len(n)-1
flag=True
while a<b:
    if n[a]!=n[b]:
        print('不是回文串')
        flag=False
        break
    a,b=a+1,b-1
if flag:
    print('是回文串')

實體031:字母識詞

題目請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母,

程式分析這里用字典的形式直接將對照關系存好,

weekT={'h':'thursday',
       'u':'tuesday'}
weekS={'a':'saturday',
       'u':'sunday'}
week={'t':weekT,
      's':weekS,
      'm':'monday',
      'w':'wensday',
      'f':'friday'}
a=week[str(input('請輸入第一位字母:')).lower()]
if a==weekT or a==weekS:
    print(a[str(input('請輸入第二位字母:')).lower()])
else:
    print(a)

實體032:反向輸出II

題目按相反的順序輸出串列的值,

程式分析無,

a = ['one', 'two', 'three']
print(a[::-1])

實體033:串列轉字串

題目按逗號分隔串列,

程式分析無,

L = [1,2,3,4,5]
print(','.join(str(n) for n in L))

實體034:呼叫函式

題目練習函式呼叫,

程式分析無,

def hello():
    print('Hello World!')
def helloAgain():
    for i in range(2):
        hello()

if __name__=='__main__':
    helloAgain()

實體035:設定輸出顏色

題目文本顏色設定,

程式分析無,

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)

實體036:算素數

題目求100之內的素數,

程式分析用else執行for回圈的獎勵代碼(如果for是正常完結,非break),

lo=int(input('下限:'))
hi=int(input('上限:'))
for i in range(lo,hi+1):
    if i > 1:
        for j in range(2,i):
            if (i % j) == 0:
                break
        else:
            print(i)

實體037:排序

題目對10個數進行排序,

程式分析同實體005,

raw=[]
for i in range(10):
    x=int(input('int%d: '%(i)))
    raw.append(x)
    
for i in range(len(raw)):
    for j in range(i,len(raw)):
        if raw[i]>raw[j]:
            raw[i],raw[j]=raw[j],raw[i]
print(raw)

實體038:矩陣對角線之和

題目求一個3*3矩陣主對角線元素之和,

程式分析無,

mat=[[1,2,3],
     [3,4,5],
     [4,5,6]
    ]
res=0
for i in range(len(mat)):
    res+=mat[i][i]
print(res)

實體039:有序串列插入元素

題目有一個已經排好序的陣列,現輸入一個數,要求按原來的規律將它插入陣列中,

程式分析首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況,插入后此元素之后的數,依次后移一個位置,

lis=[1,10,100,1000,10000,100000]
n=int(input('insert a number: '))
lis.append(n)
for i in range(len(lis)-1):
    if lis[i]>=n:
        for j in range(i,len(lis)):
            lis[j],lis[-1]=lis[-1],lis[j]
        break
print(lis)

實體040:逆序串列

題目將一個陣列逆序輸出,

程式分析依次交換位置,或者直接呼叫reverse方法,

lis=[1,10,100,1000,10000,100000]
for i in range(int(len(lis)/2)):
    lis[i],lis[len(lis)-1-i]=lis[len(lis)-1-i],lis[i]
print('第一種實作:')
print(lis)


lis=[1,10,100,1000,10000,100000]
print('第二種實作:')
lis.reverse()
print(lis)

實體041:類的方法與變數

題目模仿靜態變數的用法,

程式分析構造類,了解類的方法與變數,

def dummy():
    i=0
    print(i)
    i+=1

class cls:
    i=0
    def dummy(self):
        print(self.i)
        self.i+=1

a=cls()
for i in range(50):
    dummy()
    a.dummy()

實體042:變數作用域

題目學習使用auto定義變數的用法,

程式分析python中的變數作用域,

i=0
n=0
def dummy():
    i=0
    print(i)
    i+=1
def dummy2():
    global n
    print(n)
    n+=1
print('函式內部的同名變數')
for j in range(20):
    print(i)
    dummy()
    i+=1
print('global宣告同名變數')
for k in range(20):
    print(n)
    dummy2()
    n+=10

實體043:作用域、類的方法與變量

題目模仿靜態變數(static)另一案例,

程式分析綜合實體041和實體042,

class dummy:
    num=1
    def Num(self):
        print('class dummy num:',self.num)
        print('global num: ',num)
        self.num+=1

n=dummy()
num=1
for i in range(5):
    num*=10
    n.Num()

實體044:矩陣相加

題目計算兩個矩陣相加,

程式分析創建一個新的矩陣,使用 for 迭代并取出 X 和 Y 矩陣中對應位置的值,相加后放到新矩陣的對應位置中,

X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]
 
Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]
 
res=[[0,0,0],
    [0,0,0],
    [0,0,0]]
for i in range(len(res)):
    for j in range(len(res[0])):
        res[i][j]=X[i][j]+Y[i][j]
print(res)

實體045:求和

題目統計 1 到 100 之和,

程式分析

res=0
for i in range(1,101):
    res+=i
print(res)

實體046:打破回圈

題目求輸入數字的平方,如果平方運算后小于 50 則退出,

程式分析

while True:
    try:
        n=float(input('輸入一個數字:'))
    except:
        print('輸入錯誤')
        continue
    dn=n**2
    print('其平方為:',dn)
    if dn<50:
        print('平方小于50,退出')
        break

實體047:函式交換變數

題目兩個變數值用函式互換,

程式分析

def exc(a,b):
    return (b,a)
a=0
b=10
a,b=exc(a,b)
print(a,b)

實體048:數字比大小

題目數字比較,

程式分析

a=int(input('a='))
b=int(input('b='))
if a<b:
    print('a<b')
elif a>b:
    print('a>b')
else:
    print('a=b')

實體049:lambda

題目使用lambda來創建匿名函式,

程式分析

Max=lambda x,y:x*(x>=y)+y*(y>x)
Min=lambda x,y:x*(x<=y)+y*(y<x)

a=int(input('1:'))
b=int(input('2:'))

print(Max(a,b))
print(Min(a,b))

實體050:亂數

題目輸出一個亂數,

程式分析使用 random 模塊,

import random
print(random.uniform(10,20))

實體051:按位與

題目學習使用按位與 & ,

程式分析0&0=0; 0&1=0; 1&0=0; 1&1=1,

a=0o77
print(a)
b=a&3
print(b)
b=b&7
print(b)

實體052:按位或

題目學習使用按位或 | ,

程式分析0|0=0; 0|1=1; 1|0=1; 1|1=1

a=0o77
print(a|3)
print(a|3|7)

實體053:按位異或

題目學習使用按位異或 ^ ,

程式分析0^0=0; 0^1=1; 1^0=1; 1^1=0

a=0o77
print(a^3)
print(a^3^7)

實體054:位取反、位移動

題目取一個整數a從右端開始的4?7位,

程式分析可以這樣考慮:
(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))

實體055:按位取反

題目學習使用按位取反~,

程式分析~0=1; ~1=0;

print(~234)
print(~~234)

實體056:畫圈

題目畫圖,學用circle畫圓形,

程式分析無,

from tkinter import *
canvas=Canvas(width=800,height=600,bg='yellow')
canvas.pack(expand=YES,fill=BOTH)
k=1
j=1
for i in range(26):
    canvas.create_oval(310-k,250-k,310+k,250+k,width=1)
    k+=j
    j+=0.3
mainloop()

實體057:畫線

題目畫圖,學用line畫直線,

程式分析無,

if __name__ == '__main__':
    from tkinter import *
 
    canvas = Canvas(width=300, height=300, bg='green')   
    canvas.pack(expand=YES, fill=BOTH)                  
    x0 = 263
    y0 = 263
    y1 = 275
    x1 = 275
    for i in range(19):
        canvas.create_line(x0,y0,x0,y1, width=1, fill='red')
        x0 = x0 - 5
        y0 = y0 - 5
        x1 = x1 + 5
        y1 = y1 + 5
 
    x0 = 263
    y1 = 275
    y0 = 263
    for i in range(21):
        canvas.create_line(x0,y0,x0,y1,fill = 'red')
        x0 += 5
        y0 += 5
        y1 += 5
 
    mainloop()

實體058:畫矩形

題目畫圖,學用rectangle畫方形,

程式分析無,

if __name__ == '__main__':
    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 -= 5
        y0 -= 5
        x1 += 5
        y1 += 5
        
    canvas.pack()
    root.mainloop()

實體059:畫圖(丑)

題目畫圖,綜合例子,

程式分析丑,

if __name__  == '__main__':
    from tkinter import *
    canvas = Canvas(width = 300,height = 300,bg = 'green')
    canvas.pack(expand = YES,fill = BOTH)
    x0 = 150
    y0 = 100
    canvas.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 math
    B = 0.809
    for i in range(16):
        a = 2 * math.pi / 16 * i
        x = 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) * k
            x = 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 - 1
            x = 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()

實體060:字串長度

題目計算字串長度,

程式分析無,

s='zhangguang101'
print(len(s))

實體061:楊輝三角

題目列印出楊輝三角形前十行,

程式分析無,

def generate(numRows):
    r = [[1]]
    for i in range(1,numRows):
        r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0])))
    return r[:numRows]
a=generate(10)
for i in a:
    print(i)

實體062:查找字串

題目查找字串,

程式分析無,

s1='aabbxuebixuebi'
s2='ab'
s3='xue'
print(s1.find(s2))
print(s1.find(s3))

實體063:畫橢圓

題目畫橢圓,

程式分析使用 tkinter,

if __name__ == '__main__':
    from tkinter import *
    x = 360
    y = 160
    top = y - 30
    bottom = y - 30
    
    canvas = Canvas(width = 400,height = 600,bg = 'white')
    for i in range(20):
        canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom)
        top -= 5
        bottom += 5
    canvas.pack()
    mainloop()

實體64:畫橢圓、矩形

題目利用ellipse 和 rectangle 畫圖,,

程式分析無,

if __name__ == '__main__':
    from tkinter import *
    canvas = Canvas(width = 400,height = 600,bg = 'white')
    left = 20
    right = 50
    top = 50
    num = 15
    for 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 += 5
        left += 5
        top += 10

    canvas.pack()
    mainloop()

實體065:畫組合圖形

題目一個最優美的圖案,

程式分析無,

import math
from tkinter import *

class PTS:
    def __init__(self):
        self.x = 0
        self.y = 0
points = []

def LineToDemo():
    screenx = 400
    screeny = 400
    canvas = Canvas(width = screenx,height = screeny,bg = 'white')

    AspectRatio = 0.85
    MAXPTS = 15
    h = screeny
    w = screenx
    xcenter = w / 2
    ycenter = h / 2
    radius = (h - 30) / (AspectRatio * 2) - 20
    step = 360 / MAXPTS
    angle = 0.0
    for i in range(MAXPTS):
        rads = angle * math.pi / 180.0
        p = PTS()
        p.x = xcenter + int(math.cos(rads) * radius)
        p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
        angle += step
        points.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()

實體066:三數排序

題目輸入3個數a,b,c,按大小順序輸出,

程式分析同實體005,

raw=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw.append(x)
    
for i in range(len(raw)):
    for j in range(i,len(raw)):
        if raw[i]>raw[j]:
            raw[i],raw[j]=raw[j],raw[i]
print(raw)


raw2=[]
for i in range(3):
    x=int(input('int%d: '%(i)))
    raw2.append(x)
print(sorted(raw2))

實體067:交換位置

題目輸入陣列,最大的與第一個元素交換,最小的與最后一個元素交換,輸出陣列,

程式分析無,

li=[3,2,5,7,8,1,5]

li[-1],li[li.index(min(li))]=li[li.index(min(li))],li[-1]

m=li[0]
ind=li.index(max(li))
li[0]=li[ind]
li[ind]=m

print(li)

實體068:旋轉數列

題目有n個整數,使其前面各數順序向后移m個位置,最后m個數變成最前面的m個數

程式分析無,

from collections import *
li=[1,2,3,4,5,6,7,8,9]
deq=deque(li,maxlen=len(li))
print(li)
deq.rotate(int(input('rotate:')))
print(list(deq))

實體069:報數

題目有n個人圍成一圈,順序排號,從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位,

程式分析無,

if __name__ == '__main__':
    nmax = 50
    n = int(input('請輸入總人數:'))
    num = []
    for i in range(n):
        num.append(i + 1)
 
    i = 0
    k = 0
    m = 0
 
    while m < n - 1:
        if num[i] != 0 : k += 1
        if k == 3:
            num[i] = 0
            k = 0
            m += 1
        i += 1
        if i == n : i = 0
 
    i = 0
    while num[i] == 0: i += 1
    print(num[i])

實體070:字串長度II

題目寫一個函式,求一個字串的長度,在main函式中輸入字串,并輸出其長度,

程式分析無,

def lenofstr(s):
    return len(s)

print(lenofstr('tanxiaofengsheng'))

實體071:輸入和輸出

題目撰寫input()和output()函式輸入,輸出5個學生的資料記錄,

程式分析無,

N = 3
#stu
# num : string
# name : string
# score[4]: list
student = []
for i in range(5):
    student.append(['','',[]])
 
def input_stu(stu):
    for i in range(N):
        stu[i][0] = input('input student num:\n')
        stu[i][1] = input('input student name:\n')
        for j in range(3):
            stu[i][2].append(int(input('score:\n')))
 
def output_stu(stu):
    for i in range(N):
        print ('%-6s%-10s' % ( stu[i][0],stu[i][1] ))
        for j in range(3):
            print ('%-8d' % stu[i][2][j])
 
if __name__ == '__main__':
    input_stu(student)
    print (student)
    output_stu(student)

實體072:創建鏈表

題目創建一個鏈表,

程式分析原文不太靠譜,

class Node:

    def __init__(self, data):
        self.data = data
        self.next = None

    def get_data(self):
        return self.data

class List:

    def __init__(self, head):
        self.head = head

    def is_empty(self): 
        return self.get_len() == 0

    def get_len(self):  
        length = 0
        temp = self.head
        while temp is not None:
            length += 1
            temp = temp.next
        return length

    def append(self, node):
        temp = self.head
        while temp.next is not None:
            temp = temp.next
        temp.next = node

    def delete(self, index): 
        if index < 1 or index > self.get_len():
            print("給定位置不合理")
            return
        if index == 1:
            self.head = self.head.next
            return
        temp = self.head
        cur_pos = 0
        while temp is not None:
            cur_pos += 1
            if cur_pos == index-1:
                temp.next = temp.next.next
            temp = temp.next

    def insert(self, pos, node):
        if pos < 1 or pos > self.get_len():
            print("插入結點位置不合理")
            return
        temp = self.head
        cur_pos = 0
        while temp is not Node:
            cur_pos += 1
            if cur_pos == pos-1:
                node.next = temp.next
                temp.next =node
                break
            temp = temp.next

    def reverse(self, head):
        if head is None and head.next is None:
            return head
        pre = head
        cur = head.next
        while cur is not None:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        head.next = None
        return pre

    def print_list(self, head):
        init_data = []
        while head is not None:
            init_data.append(head.get_data())
            head = head.next
        return init_data

if __name__=='__main__':
    head=Node('head')
    link=List(head)
    for i in range(10):
        node=Node(i)
        link.append(node)
    print(link.print_list(head))

實體073:反向輸出鏈表

題目反向輸出一個鏈表,

程式分析無,

class Node:

    def __init__(self, data):
        self.data = data
        self.next = None

    def get_data(self):
        return self.data

class List:

    def __init__(self, head):
        self.head = head

    def is_empty(self): 
        return self.get_len() == 0

    def get_len(self):  
        length = 0
        temp = self.head
        while temp is not None:
            length += 1
            temp = temp.next
        return length

    def append(self, node):
        temp = self.head
        while temp.next is not None:
            temp = temp.next
        temp.next = node

    def delete(self, index): 
        if index < 1 or index > self.get_len():
            print("給定位置不合理")
            return
        if index == 1:
            self.head = self.head.next
            return
        temp = self.head
        cur_pos = 0
        while temp is not None:
            cur_pos += 1
            if cur_pos == index-1:
                temp.next = temp.next.next
            temp = temp.next

    def insert(self, pos, node):
        if pos < 1 or pos > self.get_len():
            print("插入結點位置不合理")
            return
        temp = self.head
        cur_pos = 0
        while temp is not Node:
            cur_pos += 1
            if cur_pos == pos-1:
                node.next = temp.next
                temp.next =node
                break
            temp = temp.next

    def reverse(self, head):
        if head is None and head.next is None:
            return head
        pre = head
        cur = head.next
        while cur is not None:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        head.next = None
        return pre

    def print_list(self, head):
        init_data = []
        while head is not None:
            init_data.append(head.get_data())
            head = head.next
        return init_data

if __name__=='__main__':
    head=Node('head')
    link=List(head)
    for i in range(10):
        node=Node(i)
        link.append(node)
    print(link.print_list(head))
    print(link.print_list(link.reverse(head)))

實體074:串列排序、連接

題目串列排序及連接,

程式分析排序可使用 sort() 方法,連接可以使用 + 號或 extend() 方法,

a=[2,6,8]
b=[7,0,4]
a.extend(b)
a.sort()
print(a)

實體075:不知所云

題目放松一下,算一道簡單的題目,

程式分析鬼知道是什么,

if __name__ == '__main__':
    for i in range(5):
        n = 0
        if i != 1: n += 1
        if i == 3: n += 1
        if i == 4: n += 1
        if i != 4: n += 1
        if n == 3: print (64 + i)

實體076:做函式

題目撰寫一個函式,輸入n為偶數時,呼叫函式求1/2+1/4+…+1/n,當輸入n為奇數時,呼叫函式1/1+1/3+…+1/n

程式分析無,

def peven(n):
    i = 0
    s = 0.0
    for i in range(2,n + 1,2):
        s += 1.0 / i
    return s
 
def podd(n):
    s = 0.0
    for i in range(1, n + 1,2):
        s += 1.0 / i
    return s
 
def dcall(fp,n):
    s = fp(n)
    return s
 
if __name__ == '__main__':
    n = int(input('input a number: '))
    if n % 2 == 0:
        sum = dcall(peven,n)
    else:
        sum = dcall(podd,n)
    print (sum)

實體077:遍歷串列

題目回圈輸出串列

程式分析無,

l=['moyu','niupi','xuecaibichi','shengfaji','42']
for i in range(len(l)):
    print(l[i])

實體078:字典

題目找到年齡最大的人,并輸出,請找出程式中有什么問題,

程式分析無,

if __name__ == '__main__':
    person = {"li":18,"wang":50,"zhang":20,"sun":22}
    m = 'li'
    for key in person.keys():
        if person[m] < person[key]:
            m = key
 
    print ('%s,%d' % (m,person[m]))

實體079:字串排序

題目字串排序,

程式分析無,

l=['baaa','aaab','aaba','aaaa','abaa']
l.sort()
print(l)

實體080:猴子分桃

題目海灘上有一堆桃子,五只猴子來分,第一只猴子把這堆桃子平均分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份,第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?

程式分析無,

if __name__ == '__main__':
    i = 0
    j = 1
    x = 0
    while (i < 5) :
        x = 4 * j
        for i in range(0,5) :
            if(x%4 != 0) :
                break
            else :
                i += 1
            x = (x/4) * 5 +1
        j += 1
    print(x)

    for p in range(5):
        x=(x-1)/5*4
    print(x)

實體081:求未知數

題目809*??=800*??+9*?? 其中??代表的兩位數, 809*??為四位數,8*??的結果為兩位數,9*??的結果為3位數,求??代表的兩位數,及809*??后的結果,

程式分析無,

a = 809
for i in range(10,100):
    b = i * a
    if b >= 1000 and b <= 10000 and 8 * i < 100 and 9 * i >= 100:
        print(b,' = 800 * ', i, ' + 9 * ', i)


for i in range(10,100):
    if 8*i>99 or 9*i<100:
        continue
    if 809*i==800*i+9*i:
        print(i)
        break

實體082:八進制轉十進制

題目八進制轉換為十進制

程式分析無,

n=eval('0o'+str(int(input('八進制輸入:'))))
print(n)

實體083:制作奇數

題目求0—7所能組成的奇數個數,

程式分析

組成1位數是4個,1,3,5,7結尾

組成2位數是7*4個,第一位不能為0

組成3位數是784個,中間隨意

組成4位數是788*4個,

if __name__ == '__main__':
    sum = 4
    s = 4
    for j in range(2,9):
        print (sum)
        if j <= 2:
            s *= 7
        else:
            s *= 8
        sum += s
    print('sum = %d' % sum)

實體084:連接字串

題目連接字串,

程式分析無,

delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print(delimiter.join(mylist))

實體085:整除

題目輸入一個奇數,然后判斷最少幾個 9 除于該數的結果為整數,

程式分析999999 / 13 = 76923,

if __name__ == '__main__':
    zi = int(input('輸入一個數字:'))
    n1 = 1
    c9 = 1
    m9 = 9
    sum = 9
    while n1 != 0:
        if sum % zi == 0:
            n1 = 0
        else:
            m9 *= 10
            sum += m9
            c9 += 1
    print ('%d 個 9 可以被 %d 整除 : %d' % (c9,zi,sum))
    r = sum / zi
    print ('%d / %d = %d' % (sum,zi,r))

實體086:連接字串II

題目兩個字串連接程式,

程式分析無,

a='guangtou'
b='feipang'
print(b+a)

實體087:訪問類成員

題目回答結果(結構體變數傳遞),

程式分析無,

if __name__ == '__main__':
    class student:
        x = 0
        c = 0
    def f(stu):
        stu.x = 20
        stu.c = 'c'
    a= student()
    a.x = 3
    a.c = 'a'
    f(a)
    print(a.x,a.c)

實體088:列印星號

題目讀取7個數(1—50)的整數值,每讀取一個值,程式列印出該值個數的*,

程式分析無,

for i in range(3):
    print('*'*int(input('input a number: ')))

實體089:解碼

題目某個公司采用公用電話傳遞資料,資料是四位的整數,在傳遞程序中是加密的,加密規則如下:每位數字都加上5,然后用和除以10的余數代替該數字,再將第一位和第四位交換,第二位和第三位交換,

程式分析無,

n=input()
n = str(n)
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))

實體090:串列詳解

題目串列使用實體,

程式分析無,

#list  
#新建串列  
testList=[10086,'中國移動',[1,2,4,5]]  
  
#訪問串列長度  
print (len(testList)  )
#到串列結尾  
print (testList[1:])
#向串列添加元素  
testList.append('i\'m new here!')  
  
print (len(testList)  )
print (testList[-1]  )
#彈出串列的最后一個元素  
print (testList.pop(1)  )
print (len(testList)  )
print (testList  )
#list comprehension  
#后面有介紹,暫時掠過  
matrix = [[1, 2, 3],  
[4, 5, 6],  
[7, 8, 9]]  
print (matrix  )
print (matrix[1]  )
col2 = [row[1] for row in matrix]#get a  column from a matrix  
print (col2  )
col2even = [row[1] for row in matrix if  row[1] % 2 == 0]#filter odd item  
print (col2even)

實體091:time模塊

題目時間函式舉例1,

程式分析無,

if __name__ == '__main__':
    import time
    print (time.ctime(time.time()))
    print (time.asctime(time.localtime(time.time())))
    print (time.asctime(time.gmtime(time.time())))

實體092:time模塊II

題目時間函式舉例2,

程式分析如何浪費時間,

if __name__ == '__main__':
    import time
    start = time.time()
    for i in range(3000):
        print(i)
    end = time.time()
 
    print (end - start)

實體093:time模塊III

題目時間函式舉例3,

程式分析如何浪費時間,

if __name__ == '__main__':
    import time
    start = time.clock()
    for i in range(100):
        print(i)
    end = time.clock()
    print('different is %6.3f' % (end - start))

實體094:time模塊IV

題目時間函式舉例4,

程式分析如何浪費時間,

if __name__ == '__main__':
    import time
    import random
    
    play_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) % 100
        print ('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.2
        print (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.')

實體095:轉換時間格式

題目字串日期轉換為易讀的日期格式,

程式分析看看就得了,dateutil是個第三方庫,

from dateutil import parser
dt = parser.parse("Aug 28 2015 12:00AM")
print (dt)

實體096:計算復讀次數

題目計算字串中子串出現的次數,

程式分析無,

s1='xuebixuebixuebixuebixuebixuebixuebixue'
s2='xuebi'
print(s1.count(s2))

實體097:磁盤寫入

題目從鍵盤輸入一些字符,逐個把它們寫到磁盤檔案上,直到輸入一個 # 為止,

程式分析無,

if __name__ == '__main__':
    from sys import stdout
    filename = input('輸入檔案名:\n')
    fp = open(filename,"w")
    ch = input('輸入字串:\n')
    while ch != '#':
        fp.write(ch)
        stdout.write(ch)
        ch = input('')
    fp.close()

實體098:磁盤寫入II

題目從鍵盤輸入一個字串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤檔案"test"中保存,

程式分析無,

if __name__ == '__main__':
    fp = open('test.txt','w')
    string = input('please input a string:\n')
    string = string.upper()
    fp.write(string)
    fp = open('test.txt','r')
    print (fp.read())
    fp.close()

實體099:磁盤讀寫

題目有兩個磁盤檔案A和B,各存放一行字母,要求把這兩個檔案中的資訊合并(按字母順序排列), 輸出到一個新檔案C中,

程式分析無,

if __name__ == '__main__':
    import string
    fp = open('test1.txt')
    a = fp.read()
    fp.close()
 
    fp = open('test2.txt')
    b = fp.read()
    fp.close()
 
    fp = open('test3.txt','w')
    l = list(a + b)
    l.sort()
    s = ''
    s = s.join(l)
    fp.write(s)
    fp.close()

實體100:串列轉字典

題目串列轉換為字典,

程式分析無,

i = ['a', 'b']
l = [1, 2]
print (dict(zip(i,l)))

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

標籤:python

上一篇:python3 urllib網頁下載

下一篇:解決Python第三方庫安裝緩慢的方法

標籤雲
其他(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