天天看點

python練習題

實作1-100的所有的和

1

2

3

4

5

<code>sum1 </code><code>=</code> <code>0</code>

<code>while</code> <code>sum1 &lt; </code><code>100</code><code>:</code>

<code>    </code><code>sum1 </code><code>+</code><code>=</code> <code>1</code>

<code>print</code> <code>sum1</code>

<code>print</code> <code>(</code><code>'-----'</code> <code>*</code> <code>10</code><code>)</code>

實作1-500所有奇數的和

<code>for</code> <code>i </code><code>in</code> <code>xrange</code><code>(</code><code>1</code><code>,</code><code>501</code><code>,</code><code>2</code><code>):</code>

<code>    </code><code>sum1 </code><code>+</code><code>=</code> <code>i</code>

求1+ 2! + 3! + 4! + ……20!的和

6

<code>a </code><code>=</code> <code>1</code>

<code>b </code><code>=</code> <code>0</code>

<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>,</code><code>21</code><code>):</code>

<code>    </code><code>a </code><code>=</code> <code>a</code><code>*</code><code>i</code>

<code>    </code><code>b </code><code>=</code> <code>b </code><code>+</code> <code>a</code>

<code>print</code><code>(b)</code>

對指定一個list進行排序[2,32,43,453,54,6,576,5,7,6,8,78,7,89]

<code>a </code><code>=</code> <code>[</code><code>2</code><code>,</code><code>32</code><code>,</code><code>43</code><code>,</code><code>453</code><code>,</code><code>54</code><code>,</code><code>6</code><code>,</code><code>576</code><code>,</code><code>5</code><code>,</code><code>7</code><code>,</code><code>6</code><code>,</code><code>8</code><code>,</code><code>78</code><code>,</code><code>7</code><code>,</code><code>89</code><code>]</code>

<code>a.sort()</code>

<code>print</code><code>(a)</code>

把一個數字的list從小到大排序,然後寫入檔案,然後從檔案中讀取出來檔案内容,然後反序,在追加到檔案的下一行中

7

8

9

10

11

12

13

14

15

<code>import</code> <code>ast</code>

<code>import</code> <code>codecs</code>

<code>with codecs.</code><code>open</code><code>(</code><code>'1.txt'</code><code>,</code><code>'w'</code><code>) as f:</code>

<code>    </code><code>a.sort()</code>

<code>    </code><code>f.write(</code><code>str</code><code>(a))</code>

<code>with codecs.</code><code>open</code><code>(</code><code>'1.txt'</code><code>,</code><code>'r'</code><code>) as ff:</code>

<code>    </code><code>c </code><code>=</code> <code>ast.literal_eval(ff.read())</code>

<code>    </code><code>c.reverse()</code>

<code>with codecs.</code><code>open</code><code>(</code><code>'1.txt'</code><code>,</code><code>'a'</code><code>) as fff:</code>

<code>    </code><code>fff.write(</code><code>str</code><code>(c))</code>

分别把 string, list, tuple, dict寫入到檔案中

16

17

<code>a </code><code>=</code> <code>'abc'</code>

<code>b </code><code>=</code> <code>[</code><code>1</code><code>, </code><code>2</code><code>,]</code>

<code>c </code><code>=</code> <code>(</code><code>'a'</code><code>, </code><code>'b'</code><code>, </code><code>'c'</code><code>,)</code>

<code>d </code><code>=</code> <code>{</code><code>'Q'</code><code>:</code><code>7</code><code>, </code><code>'W'</code><code>:</code><code>8</code><code>, </code><code>'E'</code><code>:</code><code>9</code><code>,}</code>

<code>print</code><code>(</code><code>type</code><code>(a))</code>

<code>print</code><code>(</code><code>type</code><code>(b))</code>

<code>print</code><code>(</code><code>type</code><code>(c))</code>

<code>print</code><code>(</code><code>type</code><code>(d))</code>

<code>with codecs.</code><code>open</code><code>(</code><code>'2.txt'</code><code>, </code><code>'w'</code><code>) as f:</code>

<code>    </code><code>f.write(</code><code>str</code><code>(b))</code>

<code>    </code><code>f.write(</code><code>str</code><code>(c))</code>

<code>    </code><code>f.write(</code><code>str</code><code>(d))</code>

ABCD*9 = DCBA,使用Python計算abcd分别是哪些數字:

18

19

20

21

22

23

24

<code>class</code> <code>CountNumber(</code><code>object</code><code>):</code>

<code>    </code><code>'''ABCD * 9 = DCBA</code>

<code>    </code><code>通過計算機的方法,給我們計算出A = ?  B = ? C = ? D = ?</code>

<code>    </code><code>A: 1-9</code>

<code>    </code><code>B: 0-9</code>

<code>    </code><code>C: 0-9</code>

<code>    </code><code>D: 1-9</code>

<code>    </code><code>A != B != C !=D</code>

<code>    </code><code>'''</code>

<code>    </code><code>def</code> <code>__init__(</code><code>self</code><code>):</code>

<code>        </code><code>print</code><code>(</code><code>"ABCD * 9 = DCBA; A!=B!=C!=D"</code><code>)</code>

<code>    </code><code>def</code> <code>numAbcd(</code><code>self</code><code>):</code>

<code>        </code><code>for</code> <code>A </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>10</code><code>):</code>

<code>            </code><code>for</code> <code>B </code><code>in</code> <code>range</code><code>(</code><code>0</code><code>, </code><code>10</code><code>):</code>

<code>                </code><code>for</code> <code>C </code><code>in</code> <code>range</code><code>(</code><code>0</code><code>, </code><code>10</code><code>):</code>

<code>                    </code><code>for</code> <code>D </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>10</code><code>):</code>

<code>                        </code><code>if</code> <code>(A</code><code>*</code><code>1000</code> <code>+</code> <code>B</code><code>*</code><code>100</code> <code>+</code> <code>C</code><code>*</code><code>10</code> <code>+</code> <code>D) </code><code>*</code> <code>9</code> <code>=</code><code>=</code> <code>(D</code><code>*</code><code>1000</code> <code>+</code> <code>C</code><code>*</code><code>100</code> <code>+</code> <code>B</code><code>*</code><code>10</code> <code>+</code> <code>A):</code>

<code>                            </code><code>print</code><code>(</code><code>"{0}{1}{2}{3} *9 = {4}{5}{6}{7}"</code><code>.</code><code>format</code><code>(A,B,C,D,D,C,B,A))</code>

<code>                            </code><code>print</code><code>(</code><code>"A = {0}, B = {1}, C = {2}, D = {3}"</code><code>.</code><code>format</code><code>(A,B, C, D))</code>

<code>def</code> <code>main():</code>

<code>    </code><code>countNumber </code><code>=</code> <code>CountNumber()</code>

<code>    </code><code>countNumber.numAbcd()</code>

<code>if</code> <code>__name__ </code><code>=</code><code>=</code> <code>'__main__'</code><code>:</code>

<code>    </code><code>main()</code>

使用Python計算九宮格

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

<code>class</code> <code>NinePaper(</code><code>object</code><code>):</code>

<code>        </code><code>print</code><code>(</code><code>'''</code>

<code>                    </code><code>_____________</code>

<code>                    </code><code>|_A_|_B_|_C_|</code>

<code>                    </code><code>|_D_|_E_|_F_|</code>

<code>                    </code><code>|_G_|_H_|_I_|</code>

<code>                    </code><code>A, B, C, D, E, F, G, H, I 必須是1-9數字,且不能重複</code>

<code>                    </code><code>所有的行,列,對角線的和都為15</code>

<code>        </code><code>'''</code><code>)</code>

<code>        </code><code>self</code><code>.numbers </code><code>=</code> <code>list</code><code>()</code>

<code>        </code><code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>1</code><code>, </code><code>10</code><code>):</code>

<code>            </code><code>self</code><code>.numbers.append(i)</code>

<code>        </code><code>print</code><code>(</code><code>"numbers = {0}"</code><code>.</code><code>format</code><code>(</code><code>self</code><code>.numbers))</code>

<code>    </code><code>def</code> <code>run(</code><code>self</code><code>):</code>

<code>            </code><code>l1 </code><code>=</code> <code>list</code><code>()</code>

<code>            </code><code>l1 </code><code>+</code><code>=</code> <code>self</code><code>.numbers</code>

<code>            </code><code>l1.remove(A)</code>

<code>            </code><code>for</code> <code>B </code><code>in</code> <code>l1:</code>

<code>                </code><code>l2 </code><code>=</code> <code>list</code><code>()</code>

<code>                </code><code>l2 </code><code>+</code><code>=</code> <code>l1</code>

<code>                </code><code>l2.remove(B)</code>

<code>                </code><code>for</code> <code>C </code><code>in</code> <code>l2:</code>

<code>                    </code><code>l3 </code><code>=</code> <code>list</code><code>()</code>

<code>                    </code><code>l3 </code><code>+</code><code>=</code> <code>l2</code>

<code>                    </code><code>l3.remove(C)</code>

<code>                    </code><code>for</code> <code>D </code><code>in</code> <code>l3:</code>

<code>                        </code><code>l4 </code><code>=</code> <code>list</code><code>()</code>

<code>                        </code><code>l4 </code><code>+</code><code>=</code> <code>l3</code>

<code>                        </code><code>l4.remove(D)</code>

<code>                        </code><code>for</code> <code>E </code><code>in</code> <code>l4:</code>

<code>                            </code><code>l5 </code><code>=</code> <code>list</code><code>()</code>

<code>                            </code><code>l5 </code><code>+</code><code>=</code> <code>l4</code>

<code>                            </code><code>l5.remove(E)</code>

<code>                            </code><code>for</code> <code>F </code><code>in</code> <code>l5:</code>

<code>                                </code><code>l6 </code><code>=</code> <code>list</code><code>()</code>

<code>                                </code><code>l6 </code><code>+</code><code>=</code> <code>l5</code>

<code>                                </code><code>l6.remove(F)</code>

<code>                                </code><code>for</code> <code>G </code><code>in</code> <code>l6:</code>

<code>                                    </code><code>l7 </code><code>=</code> <code>list</code><code>()</code>

<code>                                    </code><code>l7 </code><code>+</code><code>=</code> <code>l6</code>

<code>                                    </code><code>l7.remove(G)</code>

<code>                                    </code><code>for</code> <code>H </code><code>in</code> <code>l7:</code>

<code>                                        </code><code>l8 </code><code>=</code> <code>list</code><code>()</code>

<code>                                        </code><code>l8 </code><code>+</code><code>=</code> <code>l7</code>

<code>                                        </code><code>l8.remove(H)</code>

<code>                                        </code><code>for</code> <code>I </code><code>in</code> <code>l8:</code>

<code>                                            </code><code>if</code> <code>A</code><code>+</code><code>B</code><code>+</code><code>C </code><code>=</code><code>=</code> <code>D</code><code>+</code><code>E</code><code>+</code><code>F </code><code>=</code><code>=</code> <code>G</code><code>+</code><code>H</code><code>+</code><code>I </code><code>=</code><code>=</code> <code>A</code><code>+</code><code>D</code><code>+</code><code>G </code><code>=</code><code>=</code> <code>B</code><code>+</code><code>E</code><code>+</code><code>H </code><code>=</code><code>=</code> <code>C</code><code>+</code><code>F</code><code>+</code><code>I </code><code>=</code><code>=</code> <code>A</code><code>+</code><code>E</code><code>+</code><code>I </code><code>=</code><code>=</code> <code>C</code><code>+</code><code>E</code><code>+</code><code>G </code><code>=</code><code>=</code> <code>15</code><code>:</code>

<code>                                                </code><code>print</code><code>(</code><code>'''</code>

<code>                                            </code><code>_____________</code>

<code>                                            </code><code>|_{0}_|_{1}_|_{2}_|</code>

<code>                                            </code><code>|_{3}_|_{4}_|_{5}_|</code>

<code>                                            </code><code>|_{6}_|_{7}_|_{8}_|</code>

<code>                                                </code><code>'''</code><code>.</code><code>format</code><code>(A, B, C, D, E, F, G, H, I))</code>

<code>    </code><code>ninePaper </code><code>=</code> <code>NinePaper()</code>

<code>    </code><code>ninePaper.run()</code>

passwd檔案按uid正序排序 生成一個新的passwd檔案,用Python實作

<code>import</code> <code>os</code>

<code>class</code> <code>SortPasswd(</code><code>object</code><code>):</code>

<code>        </code><code>self</code><code>.passwd </code><code>=</code> <code>"passwd"</code>

<code>        </code><code>self</code><code>.newpasswd </code><code>=</code> <code>"newPasswd"</code>

<code>        </code><code>self</code><code>.contextList </code><code>=</code> <code>list</code><code>()</code>

<code>        </code><code>if</code> <code>not</code> <code>os.path.exists(</code><code>self</code><code>.passwd):</code>

<code>            </code><code>print</code><code>(</code><code>"please download passwd from linux."</code><code>)</code>

<code>            </code><code>exit(</code><code>1</code><code>)</code>

<code>        </code><code>print</code><code>(</code><code>"sort file is :{0}"</code><code>.</code><code>format</code><code>(</code><code>self</code><code>.passwd))</code>

<code>        </code><code>print</code><code>(</code><code>"sorted file is :{0}"</code><code>.</code><code>format</code><code>(</code><code>self</code><code>.newpasswd))</code>

<code>    </code><code>def</code> <code>getContextList(</code><code>self</code><code>):</code>

<code>        </code><code>with codecs.</code><code>open</code><code>(</code><code>"passwd"</code><code>) as fr:</code>

<code>            </code><code>self</code><code>.contextList </code><code>+</code><code>=</code> <code>sorted</code><code>(fr.readlines(), key</code><code>=</code><code>lambda</code> <code>line:</code><code>int</code><code>(line.split(</code><code>":"</code><code>)[</code><code>2</code><code>]), reverse</code><code>=</code><code>False</code><code>)</code>

<code>    </code><code>def</code> <code>writeContextList(</code><code>self</code><code>):</code>

<code>        </code><code>with codecs.</code><code>open</code><code>(</code><code>"new_passwd"</code><code>, </code><code>"w"</code><code>) as fw:</code>

<code>            </code><code>fw.writelines(</code><code>self</code><code>.contextList)</code>

<code>    </code><code>sortpasswd </code><code>=</code> <code>SortPasswd()</code>

<code>    </code><code>sortpasswd.getContextList()</code>

<code>    </code><code>sortpasswd.writeContextList()</code>

線程練習題:

定義線程類

import codecs

from queue import Queue

from threading import Thread

import time

class Produce(Thread):

    def __init__(self, queue):

        super(Produce, self).__init__()

        self.fileName = "../firstlession/passwd"

        self.fileList = list()

        self.queue = queue

    def run(self):

        with codecs.open(self.fileName) as f:

            self.fileList += f.readlines()

        for line in self.fileList:

            self.queue.put(line)

class Consumer(Thread):

        super(Consumer, self).__init__()

        self.newPasswd = "newpasswd.txt"

        self.stat = 1

        while 1:

            if self.queue.empty():

                time.sleep(2)

                self.stat += 1

                if self.stat == 5:

                    break

            else:

                self.stat = 1

                data = self.queue.get()

                self.fileList.append(data)

        with codecs.open(self.newPasswd, 'w') as f:

            f.writelines(self.fileList)

調用類,并寫入主函數

from onlive.secondlesson.threadtest import Produce, Consumer

def main():

    q = Queue()

    produce = Produce(q)

    consumer = Consumer(q)

    produce.start()

    consumer.start()

if __name__ == '__main__':

    main()

socket程式設計

服務端:

from onlive.sockettest.util import SocketServerTest

    socketServer = SocketServerTest(host="0.0.0.0", port=9999, type="tcp", backlog=5)

    socketServer.run()

用戶端:

from onlive.sockettest.util import ClientSocketTest

    socketClient = ClientSocketTest(host="127.0.0.1", port=9999, type="tcp")

    socketClient.run()

主函數:

import socket

class InitSocketTest(object):

    def __init__(self, host, port, type):

        self.host = host

        self.port = port

        self.address = (host, port)

        self.type = type

        self.s = None

        self.creatsocket()

    def creatsocket(self):

        if self.type.upper() == "TCP":

            self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

        elif self.type.upper == "UDP":

            self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

        else:

            print("you must input the InitSocket(type) is 'UDP|TCP' ")

class SocketServerTest(InitSocketTest):

    def __init__(self, host, port, type,  backlog):

        self.backlog = backlog

        super(SocketServerTest, self).__init__(host, port, type)

        self.clientAddress = None

        self.s.bind(self.address)

        self.s.listen(self.backlog)

        print("server starting…………")

        conn, self.clientAddress = self.s.accept()

        print("accept connect from {0}".format(self.clientAddress))

        for i in range(1, 10):

            conn.sendall("i = {0}".format(str(i)).encode("utf-8"))

        self.s.close()

class ClientSocketTest(InitSocketTest):

        self.s.connect(self.address)

        stat = 1

            data = self.s.recv(2048)

            if len(data)&gt;0:

                stat = 1

                print(data.decode("utf-8"))

                stat += 1

                time.sleep(1)

                if stat == 5:

用Python實作ssh用戶端

server端

import paramiko

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 上面是用來設定known-host

host = "192.168.48.131"

port = 22

username = "root"

passwd = "123456"

client.connect(hostname=host, port=port, username=username, password=passwd)

stat = 1

while 1:

    cmd = input("{0}&gt;&gt; ".format(host))

    if cmd:

        stdin, stdout, stderr = client.exec_command(cmd)

        for std in stdout.readlines():

            print(std)

    else:

        stat += 1

        time.sleep(1)

        if stat == 5:

            break

client端

    host = "192.168.48.131"

    port = 12345

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    s.connect((host, port))

    stat = 1

    while 1:

        cmd = input("{0}&gt;&gt;&gt; ".format(host))

        if cmd.lower() == "exit":

            exit()

        if not cmd:

            continue

        s.sendall(cmd.encode("utf-8"))

        data = s.recv(2048)

        redata = data.decode("utf-8").replace("\n", "\r\n")

        # print(type(data))

        if len(data)&gt;0:

            stat = 1

            print("{0}".format(redata))

            stat += 1

            time.sleep(1)

            if stat == 5:

                break

本文轉自 粗糧面包 51CTO部落格,原文連結:http://blog.51cto.com/culiangmianbao/1976598,如需轉載請自行聯系原作者