您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python有哪些練習(xí)題的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Python有哪些練習(xí)題文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
題目:學(xué)習(xí)使用按位與 & 。
程序分析: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)
題目:學(xué)習(xí)使用按位或 | 。
程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
a=0o77 print(a|3) print(a|3|7)
題目:學(xué)習(xí)使用按位異或 ^
。
程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
a=0o77 print(a^3) print(a^3^7)
題目:取一個(gè)整數(shù)a從右端開始的4?7位。
程序分析:可以這樣考慮: (1)先使a右移4位。 (2)設(shè)置一個(gè)低4位全為1,其余全為0的數(shù)。可用~(~0<<4) (3)將上面二者進(jìn)行&運(yùn)算。
a=int(input('輸入一個(gè)數(shù)字: ')) 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))
題目:學(xué)習(xí)使用按位取反~。
程序分析:~0=1; ~1=0;
print(~234) print(~~234)
題目:畫圖,學(xué)用circle畫圓形?! ?/p>
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()
題目:畫圖,學(xué)用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()
題目:畫圖,學(xué)用rectangle
畫方形?! ?/p>
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()
題目:畫圖,綜合例子?! ?/p>
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()
題目:計(jì)算字符串長(zhǎng)度?! ?/p>
s='zhangguang101' print(len(s))
題目:打印出楊輝三角形前十行?! ?/p>
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)
題目:查找字符串?! ?/p>
s1='aabbxuebixuebi' s2='ab' s3='xue' print(s1.find(s2)) print(s1.find(s3))
題目:畫橢圓?!?/p>
程序分析:使用 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()
題目:利用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()
題目:一個(gè)最優(yōu)美的圖案?! ?/p>
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()
題目:輸入3個(gè)數(shù)a,b,c,按大小順序輸出。
程序分析:同實(shí)例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))
題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組。
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)
題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)
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))
題目:有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的那位。
if __name__ == '__main__': nmax = 50 n = int(input('請(qǐng)輸入總?cè)藬?shù):')) 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])
題目:寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在main
函數(shù)中輸入字符串,并輸出其長(zhǎng)度。
def lenofstr(s): return len(s) print(lenofstr('tanxiaofengsheng'))
題目:編寫input()
和output()
函數(shù)輸入,輸出5個(gè)學(xué)生的數(shù)據(jù)記錄。
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)
題目:創(chuàng)建一個(gè)鏈表。
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("插入結(jié)點(diǎn)位置不合理") 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))
題目:反向輸出一個(gè)鏈表。
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("插入結(jié)點(diǎn)位置不合理") 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)))
題目:列表排序及連接。
程序分析:排序可使用sort()
方法,連接可以使用 + 號(hào)或 extend()
方法。
a=[2,6,8] b=[7,0,4] a.extend(b) a.sort() print(a)
題目:放松一下,算一道簡(jiǎn)單的題目。
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)
關(guān)于“Python有哪些練習(xí)題”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Python有哪些練習(xí)題”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。