Python高级教程(十)、实例演示

exam1.py

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


# 该实例输出 Hello World!
print('Hello World!')

运行结果:

Hello World!

exam2.py

# -*- coding: UTF-8 -*-
 
 
# 用户输入数字
num1 = input('输入第一个数字:')
num2 = input('输入第二个数字:')
 
# 求和
sum = float(num1) + float(num2)
 
# 显示计算结果
print('数字 {0} 和 {1} 相加结果为: {2}'.format(num1, num2, sum))

运行结果如下:

输入第一个数字:1
输入第二个数字:3
数字 1 和 3 相加结果为: 4.0

exam3.py

# -*- coding: UTF-8 -*-
 
 
# 生成 0 ~ 9 之间的随机数
 
# 导入 random(随机数) 模块
import random
 
print(random.randint(0,9))

运行三次的结果如下:

(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()

运行结果如下:

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 -*-
 
 
# 获取用户输入十进制数
dec = int(input("输入数字:"))
 
print("十进制数为:", dec)
print("转换为二进制为:", bin(dec))
print("转换为八进制为:", oct(dec))
print("转换为十六进制为:", hex(dec))

运行结果如下:

输入数字:3
十进制数为: 3
转换为二进制为: 0b11
转换为八进制为: 0o3
转换为十六进制为: 0x3

exam6.py

 
# 用户输入字符
c = input("请输入一个字符: ")
 
# 用户输入ASCII码,并将输入的数字转为整型
a = int(input("请输入一个ASCII码: "))
 
 
print( c + " 的ASCII 码为", ord(c))
print( a , " 对应的字符为", chr(a))

运行结果如下:

请输入一个字符: k
请输入一个ASCII码: 97
k 的ASCII 码为 107
97  对应的字符为 a

exam7.py

# 引入日历模块
import calendar
 
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
 
# 显示日历
print(calendar.month(yy,mm))

运行结果如下:

输入年份: 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("{}号下船了".format(i))
                j+=1
            else:
                i+=1
                continue

运行结果如下:

9号下船了
18号下船了
27号下船了
6号下船了
16号下船了
26号下船了
7号下船了
19号下船了
30号下船了
12号下船了
24号下船了
8号下船了
22号下船了
5号下船了
23号下船了

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))

运行结果如下:

[19, 65, 23, 90]

exam10.py

import re
  
def Find(string): 
    # findall() 查找匹配正则表达式的字符串
    url = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', string)
    return url 
      
 
string = 'baidu 的网页地址为:https://www.baidu.com,Google 的网页地址为:https://www.google.com'
print("Urls: ", Find(string))

运行结果如下:

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()

运行结果如下:

120

exam12.py

import time
 
a1 = "2013-5-8 23:40:00"
# 先转换为时间数组
timeArray = time.strptime(a1, "%Y-%m-%d %H:%M:%S")
 
# 转换为时间戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)
 
 
# 格式转换 - 转为 /
a2 = "2019/5/10 23:40:00"
# 先转换为时间数组,然后转换为其他格式
timeArray = time.strptime(a2, "%Y/%m/%d %H:%M:%S")
otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
print(otherStyleTime)

运行结果如下:

1368027600
2019/05/10 23:40:00

exam13.py

import time
 
# 获得当前时间时间戳
now = int(time.time())
#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(otherStyleTime)

运行结果如下:

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()

运行结果如下:

输入你的名字:(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
  
# 测试数组
arr = [ 2, 3, 4, 10, 40 ] 
x = 10
  
# 函数调用
result = binarySearch(arr, 0, len(arr)-1, x) 
  
if result != -1: 
    print ("元素在数组中的索引为 %d" % result )
else: 
    print ("元素不在数组中")

运行结果如下:

元素在数组中的索引为 3

exam16.py

def partition(arr,low,high): 
    i = ( low-1 )         # 最小元素索引
    pivot = arr[high]     
  
    for j in range(low , high): 
  
        # 当前元素小于或等于 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[] --> 排序数组
# low  --> 起始索引
# high  --> 结束索引
  
# 快速排序函数
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 ("排序后的数组:") 
for i in range(n): 
    print ("%d" %arr[i]),

运行结果如下:

排序后的数组:
1
5
7
8
9
10
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 222,183评论 6 516
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,850评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,766评论 0 361
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,854评论 1 299
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,871评论 6 398
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,457评论 1 311
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,999评论 3 422
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,914评论 0 277
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,465评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,543评论 3 342
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,675评论 1 353
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,354评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 42,029评论 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,514评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,616评论 1 274
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 49,091评论 3 378
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,685评论 2 360

推荐阅读更多精彩内容