Python高級教程(十)、實(shí)例演示

exam1.py

# -*- coding: UTF-8 -*-


# 該實(shí)例輸出 Hello World!
print('Hello World!')

運(yùn)行結(jié)果:

Hello World!

exam2.py

# -*- coding: UTF-8 -*-
 
 
# 用戶輸入數(shù)字
num1 = input('輸入第一個(gè)數(shù)字:')
num2 = input('輸入第二個(gè)數(shù)字:')
 
# 求和
sum = float(num1) + float(num2)
 
# 顯示計(jì)算結(jié)果
print('數(shù)字 {0} 和 {1} 相加結(jié)果為: {2}'.format(num1, num2, sum))

運(yùn)行結(jié)果如下:

輸入第一個(gè)數(shù)字:1
輸入第二個(gè)數(shù)字:3
數(shù)字 1 和 3 相加結(jié)果為: 4.0

exam3.py

# -*- coding: UTF-8 -*-
 
 
# 生成 0 ~ 9 之間的隨機(jī)數(shù)
 
# 導(dǎo)入 random(隨機(jī)數(shù)) 模塊
import random
 
print(random.randint(0,9))

運(yùn)行三次的結(jié)果如下:

(csdn) michaelkoo@MacBook code % python exam3.py 
1
(csdn) michaelkoo@MacBook code % python exam3.py
3
(csdn) michaelkoo@MacBook code % python exam3.py
6

exam4.py

# -*- coding: UTF-8 -*-
 
 
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(j, i, i*j), end='')
    print()

運(yùn)行結(jié)果如下:

1x1=1   
1x2=2   2x2=4   
1x3=3   2x3=6   3x3=9   
1x4=4   2x4=8   3x4=12  4x4=16  
1x5=5   2x5=10  3x5=15  4x5=20  5x5=25  
1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  
1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  
1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81

exam5.py

# -*- coding: UTF-8 -*-
 
 
# 獲取用戶輸入十進(jìn)制數(shù)
dec = int(input("輸入數(shù)字:"))
 
print("十進(jìn)制數(shù)為:", dec)
print("轉(zhuǎn)換為二進(jìn)制為:", bin(dec))
print("轉(zhuǎn)換為八進(jìn)制為:", oct(dec))
print("轉(zhuǎn)換為十六進(jìn)制為:", hex(dec))

運(yùn)行結(jié)果如下:

輸入數(shù)字:3
十進(jìn)制數(shù)為: 3
轉(zhuǎn)換為二進(jìn)制為: 0b11
轉(zhuǎn)換為八進(jìn)制為: 0o3
轉(zhuǎn)換為十六進(jìn)制為: 0x3

exam6.py

 
# 用戶輸入字符
c = input("請輸入一個(gè)字符: ")
 
# 用戶輸入ASCII碼,并將輸入的數(shù)字轉(zhuǎn)為整型
a = int(input("請輸入一個(gè)ASCII碼: "))
 
 
print( c + " 的ASCII 碼為", ord(c))
print( a , " 對應(yīng)的字符為", chr(a))

運(yùn)行結(jié)果如下:

請輸入一個(gè)字符: k
請輸入一個(gè)ASCII碼: 97
k 的ASCII 碼為 107
97  對應(yīng)的字符為 a

exam7.py

# 引入日歷模塊
import calendar
 
# 輸入指定年月
yy = int(input("輸入年份: "))
mm = int(input("輸入月份: "))
 
# 顯示日歷
print(calendar.month(yy,mm))

運(yùn)行結(jié)果如下:

輸入年份: 2013
輸入月份: 05
      May 2013
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

exam8.py

people={}
for x in range(1,31):
    people[x]=1
# print(people)
check=0
i=1
j=0
while i<=31:
    if i == 31:
        i=1
    elif j == 15:
        break
    else:
        if people[i] == 0:
            i+=1
            continue
        else:
            check+=1
            if check == 9:
                people[i]=0
                check = 0
                print("{}號(hào)下船了".format(i))
                j+=1
            else:
                i+=1
                continue

運(yùn)行結(jié)果如下:

9號(hào)下船了
18號(hào)下船了
27號(hào)下船了
6號(hào)下船了
16號(hào)下船了
26號(hào)下船了
7號(hào)下船了
19號(hào)下船了
30號(hào)下船了
12號(hào)下船了
24號(hào)下船了
8號(hào)下船了
22號(hào)下船了
5號(hào)下船了
23號(hào)下船了

exam9.py

def swapPositions(list, pos1, pos2):
     
    list[pos1], list[pos2] = list[pos2], list[pos1]
    return list
 
List = [23, 65, 19, 90]
pos1, pos2  = 1, 3
 
print(swapPositions(List, pos1-1, pos2-1))

運(yùn)行結(jié)果如下:

[19, 65, 23, 90]

exam10.py

import re
  
def Find(string): 
    # findall() 查找匹配正則表達(dá)式的字符串
    url = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', string)
    return url 
      
 
string = 'baidu 的網(wǎng)頁地址為:https://www.baidu.com,Google 的網(wǎng)頁地址為:https://www.google.com'
print("Urls: ", Find(string))

運(yùn)行結(jié)果如下:

Urls:  ['https://www.baidu.com', 'https://www.google.com']

exam11.py

def exec_code(): 
    LOC = """ 
def factorial(num): 
    fact=1 
    for i in range(1,num+1): 
        fact = fact*i 
    return fact 
print(factorial(5)) 
"""
    exec(LOC) 
 
exec_code()

運(yùn)行結(jié)果如下:

120

exam12.py

import time
 
a1 = "2013-5-8 23:40:00"
# 先轉(zhuǎn)換為時(shí)間數(shù)組
timeArray = time.strptime(a1, "%Y-%m-%d %H:%M:%S")
 
# 轉(zhuǎn)換為時(shí)間戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)
 
 
# 格式轉(zhuǎn)換 - 轉(zhuǎn)為 /
a2 = "2019/5/10 23:40:00"
# 先轉(zhuǎn)換為時(shí)間數(shù)組,然后轉(zhuǎn)換為其他格式
timeArray = time.strptime(a2, "%Y/%m/%d %H:%M:%S")
otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(otherStyleTime)

運(yùn)行結(jié)果如下:

1368027600
2019/05/10 23:40:00

exam13.py

import time
 
# 獲得當(dāng)前時(shí)間時(shí)間戳
now = int(time.time())
#轉(zhuǎn)換為其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)

運(yùn)行結(jié)果如下:

2013-05-08 12:56:41

exam14.py

def myfont():
    name = input("輸入你的名字:(only English words) \t")
    length = len(name)

    for x in range(0, length):
        c = name[x]
        c = c.upper()

        if c == 'A':
            print('''-----A-----
---A---A---
--A-A-A-A--
-A-------A-''', '\n')

        elif c == 'B':
            print('''---B-B-B---
---B--B----
---B--B----
---B-B-B---''', '\n')

        elif c == 'C':
            print('''---C-C-C---
--C--------
--C--------
---C-C-C---''', '\n')

        elif c == 'D':
            print('''---D-D-D---
---D----D--
---D----D--
---D-D-D---''', '\n')

        elif c == 'E':
            print('''---E-E-E---
---EEE-----
---EEE-----
---E-E-E---''', '\n')

        elif c == 'F':
            print('''---F-F-F---
---F-------
---F-F-F---
---F-------''', '\n')

        elif c == 'G':
            print('''---G--GG---
--G--------
--G---GG---
---G--GG---''', '\n')

        elif c == 'H':
            print('''--H-----H--
--H--H--H--
--H--H--H--
--H-----H--''', '\n')

        elif c == 'I':
            print('''--II-I-II--
-----I-----
-----I-----
--II-I-II--''', '\n')

        elif c == 'J':
            print('''-----J-----
-----J-----
--J--J-----
---J-J-----''', '\n')

        elif c == 'K':
            print('''---K---K---
---K-K-----
---K-K-----
---K---K---''', '\n')

        elif c == 'L':
            print('''--L--------
--L--------
--L--------
--L-L-L-L--''', '\n')

        elif c == 'M':
            print('''--M-----M--
--M-M-M-M--
--M--M--M--
--M-----M--''', '\n')

        elif c == 'N':
            print('''--N-----N--
--N-N---N--
--N--N--N--
--N---N-N--''', '\n')

        elif c == 'O':
            print('''----OOO----
--OO---OO--
--OO---OO--
----OOO----''', '\n')

        elif c == 'P':
            print('''---P-P-P---
---P----P---
---P-P-P----
---P--------''', '\n')

        elif c == 'Q':
            print('''----QQQ----
--QQ---QQ--
--QQ-Q-QQ--
----QQQ--Q-''', '\n')

        elif c == 'R':
            print('''--R-RR-----
--R---R----
--R-RR-----
--R---R----''', '\n')

        elif c == 'S':
            print('''----SS-----
--SS---SS--
-SS---SS---
----SS-----''', '\n')

        elif c == 'T':
            print('''--TT-T-TT--
-----T-----
-----T-----
-----T-----''', '\n')

        elif c == 'U':
            print('''--U-----U--
--U-----U--
--U-----U--
---U-U-U---''', '\n')

        elif c == 'V':
            print('''--V-----V--
---V---V---
----V-V----
-----V-----''', '\n')

        elif c == 'W':
            print('''-W---W---W-
--W--W--W--
---W---W---
----W-W----''', '\n')

        elif c == 'X':
            print('''--X-----X--
----X-X----
----X-X----
--X-----X--''', '\n')

        elif c == 'Y':
            print('''--Y-----Y--
---Y---Y---
-----Y-----
-----Y-----''', '\n')

        elif c == 'Z':
            print('''--Z--Z--Z--
-------Z---
----Z------
--Z--Z--Z--''', '\n')

        elif c == ' ':
            print('''-----------
-----------
-----------
-----------''', '\n')

        elif c == '.':
            print('''----..-----
---..-..---
---..-..---
----..-----''', '\n')

if __name__ == '__main__':
    myfont()

運(yùn)行結(jié)果如下:

輸入你的名字:(only English words)     michael
--M-----M--
--M-M-M-M--
--M--M--M--
--M-----M-- 

--II-I-II--
-----I-----
-----I-----
--II-I-II-- 

---C-C-C---
--C--------
--C--------
---C-C-C--- 

--H-----H--
--H--H--H--
--H--H--H--
--H-----H-- 

-----A-----
---A---A---
--A-A-A-A--
-A-------A- 

---E-E-E---
---EEE-----
---EEE-----
---E-E-E--- 

--L--------
--L--------
--L--------
--L-L-L-L-- 

exam15.py

# 返回 x 在 arr 中的索引,如果不存在返回 -1
def binarySearch (arr, l, r, x): 
  
    # 基本判斷
    if r >= l: 
  
        mid = int(l + (r - l)/2)
  
        # 元素整好的中間位置
        if arr[mid] == x: 
            return mid 
          
        # 元素小于中間位置的元素,只需要再比較左邊的元素
        elif arr[mid] > x: 
            return binarySearch(arr, l, mid-1, x) 
  
        # 元素大于中間位置的元素,只需要再比較右邊的元素
        else: 
            return binarySearch(arr, mid+1, r, x) 
  
    else: 
        # 不存在
        return -1
  
# 測試數(shù)組
arr = [ 2, 3, 4, 10, 40 ] 
x = 10
  
# 函數(shù)調(diào)用
result = binarySearch(arr, 0, len(arr)-1, x) 
  
if result != -1: 
    print ("元素在數(shù)組中的索引為 %d" % result )
else: 
    print ("元素不在數(shù)組中")

運(yùn)行結(jié)果如下:

元素在數(shù)組中的索引為 3

exam16.py

def partition(arr,low,high): 
    i = ( low-1 )         # 最小元素索引
    pivot = arr[high]     
  
    for j in range(low , high): 
  
        # 當(dāng)前元素小于或等于 pivot 
        if   arr[j] <= pivot: 
          
            i = i+1 
            arr[i],arr[j] = arr[j],arr[i] 
  
    arr[i+1],arr[high] = arr[high],arr[i+1] 
    return ( i+1 ) 
  
 
# arr[] --> 排序數(shù)組
# low  --> 起始索引
# high  --> 結(jié)束索引
  
# 快速排序函數(shù)
def quickSort(arr,low,high): 
    if low < high: 
  
        pi = partition(arr,low,high) 
  
        quickSort(arr, low, pi-1) 
        quickSort(arr, pi+1, high) 
  
arr = [10, 7, 8, 9, 1, 5] 
n = len(arr) 
quickSort(arr,0,n-1) 
print ("排序后的數(shù)組:") 
for i in range(n): 
    print ("%d" %arr[i]),

運(yùn)行結(jié)果如下:

排序后的數(shù)組:
1
5
7
8
9
10
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容