python基礎練習_1

練習_1

練習題目:
    1 給定一個不超過5位的正整數,判斷其有幾位
         使用input函數
     2 打印1-10,正反序
     3 計算10以內的偶數(奇數)
     4 給定一個不超過5位的正整數,判斷其有幾位,依次打印出個位,百位,千位,萬位的數字(逆序呢)
     5 打印一個邊長爲n的正方形
     6 求100內所有奇數的和(2500)
     7 判斷學生成績,成績等級A-E,其中,90分以上爲’A’,80-89分爲’B’,70-79分爲’C’,60-69分爲’D’,60分以下爲’E’
     8 求1到5階乘之和
     9 給一個數,判斷它是否是素數(質數)
          質數: 一個大於1的自然數只能被1和它本身整除

  • 1 給定一個不超過5位的正整數,判斷其有幾位
           使用input函數

    number=int(input())             #定義整數number
    if number>=100:                 #判斷number是否大於100(二分法)
        if number>=10000:
            print('it is five-digit number')
        elif number>=1000:
            print('it is four-digit number')
        else:
            print('it is three-digit number')
    else:
        if number>=10:
            print('it is two-digit number')
        elif number>=0:
            print('it is unidigit')
    
    # 2 
    i=int(input('>>>'))
    count=1
    while True:
        count+=1
        i=i//10        # 將個位去除之後的數賦值給自身,例: i=55//10=5
        if i//10==0:   # 當去除到數字首位時,i爲個位,便如: 5//10=0
            break
    print(count)
  • 2 打印1-10,正反序

    #正:
        # 1
        for i in range(10):      
            print(i+1)
    
        # 2
        for i in range(1,11):
            print(i)
    
        # 3 
        i=1
        while True:
            print(i)
            i+=1
            if i==11:
                break


    #反:
        # 1
        for i in range(10,0,-1):
            print(i)
        # 2
        for i in range(1,11):
            print(11-i)
        # 3
        i=10
        while True:
            print(i)
            i-=1
            if i==0:
                break
  • 3 計算10以內的偶數(奇數)

偶數:

#1
    for i in range(0,11,2):
        print(i)
#2
    for i in range(11):
        if i%2==0:
            print(i)
#3
    for i in range(11):
        if i%2!=0:
            continue
        else:
            print(i)

奇數:
#1
    for i in range(1,11,2):
        print(i)
#2
    for i in range(11):
        if i%2!=0:
            print(i)
#3
    for i in range(11):
        if i%2==0:
            continue
        else:
            print(i)

- 4 給定一個不超過5位的正整數,判斷其有幾位,依次打印出個位,百位,千位,萬位的數字(逆序)
#正序:
number=1234             #定義整數number
if number>=100:         #判斷整數位數
    if number>=10000:
        digit=5         #位數賦值給digit
    elif number>=1000:
        digit=4
    else:
        digit=3
else:
    if number>=10:
        digit=2
    elif number>=0:
        digit=1  
print("digit is : "digit)  
pre_old=number           #number賦值給pre_old
while digit:             
    unidigit=pre_old%10  #求得個位數的值
    pre_new=pre_old//10  #求得除個位以外其它數的值
    pre_old=pre_new      
    print(unidigit)      #打印個位數的值
    digit-=1

#逆序:
    # 1
number=1234
if number>=100:
    if number>=10000:
        digit=5
    elif number>=1000:
        digit=4
    else:
        digit=3
else:
    if number>=10:
        digit=2
    elif number>=0:
        digit=1
print("digit is : "digit)
while digit:
    midnum=number//10**(digit-1)
    unidigit=midnum%10
    digit-=1
    print(unidigit)
# 2
i=int(input('>>>'))
count=1
num=i       # 保留一份輸入的值,防止計算位數將此變量修改
while True:
    count+=1
    i=i//10    
    if i//10==0:
        break
while count:
    tmp=num//(10**(count-1))
    unidigit=tmp%10
    count-=1
    print(unidigit)

#簡化正序:
pre_old=2234
digit=0
while True:
    digit+=1                      # if之前加1
    if pre_old%10==pre_old:       # 當求得的值除以10爲自身時,表示pre_old爲個位數了,即此數的首位
        print(pre_old)
        break
    unidigit=pre_old%10   
    pre_new=pre_old//10   
    pre_old=pre_new       
    print(unidigit)
else:
    print("digit is : "digit)

- 5 打印一個邊長爲n的正方形
#    邊長爲5:
for i in range(1,6):
    if i==1 or i==5:
        print('*'*5)                   # 上下邊
    else:
        print('*'+' '*(5-2)+'*')       # 5-2爲中間的空白部分

#    邊長爲n:
for i in range(1,n+1):
    print('*'*n) if (i==1 or i==n) else print('*'+' '*(n-2)+'*')

- 6 求100內所有奇數的和(2500)
# 1
sum=0
for i in range(1,101,2):
    sum+=i
else:
    print(sum)

# 2
num=1
sum=0
while num<100:
    sum+=num
    num+=2
else:
    print(sum)

- 7 判斷學生成績,成績等級A-E,其中,90分以上爲&rsquo;A&rsquo;,80-89分爲&rsquo;B&rsquo;,70-79分爲&rsquo;C&rsquo;,60-69分爲&rsquo;D&rsquo;,60分以下爲&rsquo;E&rsquo;
score=77
if score>=70:
    if score>=90:
        print('A')
    elif score>=80:
        print('B')
    else:
        print('C')
else:
    print(D) if score>=60 else print(E)

- 8 求1到5階乘之和
#1
sum=0
for n in range(5,0,-1):        # 此循環提供需要哪些階乘,並將其累加
    product=1
    for i in range(1,n+1):     # 此循環用於生成階乘的結果
        product*=i    
    sum+=product
print(sum)

#2
sum=0
multiplier=1
for i in range(1,6):         
    multiplier*=i        # 求單個階乘
    sum+=multiplier      # 將求得的階乘累加
else:
    print(sum)

- 9 給一個數,判斷它是否是素數(質數)
        質數: 一個大於1的自然數只能被1和它本身整除
# 1
number=15
if number==0 or number==1:
    print('not prime')
if number==2:
    print('is prime')
for i in range(3,number):    # 3到此數的前一位數      
    if number%i==0:          # 如果number被從3到自己的前一位數整除,則不是質數
        print('not prime')
        break
else:
    print('is prime')

# 2
num=2

for i in range(2,int(num**0.5)+1):
    if num%i==0:
        print('not prime')
        break
else:
    print('is prime')

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