1、題目:輸出 9*9 乘法口訣表。
程序分析:分行與列考慮,共9行9列,i控制行,j控制列
代碼:
for i in range(1,10): print ('\r') for j in range(1,i+1): print "%d*%d=%d" %(i,j,i*j) ,
2、題目:有兩個磁盤文件A和B,各存放一行字母,把這兩個文件中的信息合並(按字母順序排列), 輸出到一個新文件C中
代碼:
fo=open("/Users/chichi/Documents/pythonscript/python學習/練手實例/a.txt") str1=fo.read() fo2=open("/Users/chichi/Documents/pythonscript/python學習/練手實例/b.txt") str2=fo2.read() str3=list(str1+str2) str3.sort() s='' s=s.join(str3) fo3=open("/Users/chichi/Documents/pythonscript/python學習/練手實例/c.txt","a+") fo3.write(s)
3、題目:從鍵盤輸入一些字符,逐個把它們寫到磁盤文件上,直到輸入一個 # 為止
代碼:
def fo(): str='' fo2=open("/Users/chichi/Documents/pythonscript/python學習/練手實例/d.txt","w") while "#" not in str: fo2.write(str) str=raw_input("請輸入內容:") fo()
4、題目:假設我們有一份文件,文件中包含了很多個人信息。現在需要一份去除其中敏感信息的版本,將文件中所有手機號的4~7位和身份證號的6~15位用 * 替換
代碼:
#coding=utf-8 import re def remove(data, i, line, regex, left, right): m=re.search(regex,line) #re.search(pattern, string[, flags]) 若string中包含pattern子串,則返回Match對象,否則返回None,注意,如果string中存在多個pattern子串,只返回第一個 if m: digits = m.group(0) start, end = m.start(0), m.end(0) data[i]=line[:start+left] + '*' * (right-left+1)+ line[start+right+1:] return True return False infile='/Users/chichi/Documents/pythonscript/python學習/練手實例/info.txt' outfile='/Users/chichi/Documents/pythonscript/python學習/練手實例/outfile.txt' with open(infile) as fr: data=fr.readlines() regex_id='(\d{18}|\d{17}x)' regex_phone='1\d{10}' for i, line in enumerate(data): status = remove(data, i, line, regex_id, 5, 14) if not status: status = remove(data, i, line, regex_phone, 3, 6) with open(outfile, 'w') as fw: for line in data: fw.write(line) #enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中
5、題目:從控制台輸入或從文件中讀入一段文本,統計出其中每個字符出現的次數,並按照出現次數排序輸出
代碼:
#range() 函數可創建一個整數列表,一般用在 for 循環中 #語法:range(start, stop[, step]) #參數說明: #start: 計數從 start 開始。默認是從 0 開始。例如range(5)等價於range(0, 5); #stop: 計數到 stop 結束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有5 #step:步長,默認為1。例如:range(0, 5) 等價於 range(0, 5, 1) #list.count(obj) 統計某個元素在列表中出現的次數 #list.append(obj) 在列表末尾添加新的對象 #方式一 def countstr(): stra=raw_input("請輸入一串英文字符:") list=[] for i in range(len(stra)): num=str(stra.count(stra[i])) strb=stra[i]+":"+num if strb not in list: list.append(strb) print list countstr() """ str=raw_input("請輸入一個字符串:") res={} for i in str: if i in res: res[i]=res[i]+1 else: res[i]=1 print(res) """
6、題目:隨機生成5個長度為6的優惠碼
#方式一 import random def creat_num(num,long): str = 'qwertyuiopasdfghjklzxcvbnm1234567890' b = [] for i in range(num): a = '' for j in range(long): a = a+random.choice(str) b.append(a) return b print creat_num(5,6) """ import random stra='abcdefghijklmnopqrstuvwxyz0123456789' def create_num(num,long): for i in range(num): a='' for j in range(long): a=a+random.choice(stra) print a create_num(7,8)
7、題目:人民幣轉換
# -*- coding: UTF-8 -*- dollarClass="{}元" hornClass="{}元{}角" centClass="{}元{}角{}分" def convert(input): data = input.split(".") if 1==len(data): return dollarClass.format(data[0]) elif 2==len(data): if 1==len(data[1]): return hornClass.format(data[0],data[1]) elif 2==len(data[1]): horn=data[1] return centClass.format(data[0],horn[0],horn[1]) else: return "沒有比分更少了哦" else: return "這是外星貨幣哦" print(convert("134.27")) print(convert("34.27")) print(convert("34.2")) print(convert("34")) print(convert("0.23")) print(convert(".23")) print(convert("0.234")) print(convert("0.234.1")) print(convert("0.234.1"))