• python基础练习


     1 '''
     2 Created on 2018年7月28日
     3 
     4 @author: liupf
     5 '''
     6 print("hello world!")
     7 '''
     8 print("%s%%" % '23')
     9 age = 10
    10 if age >= 18:
    11     print("your age is", age)
    12     print("adult")
    13 else:
    14     print("your age is", age)
    15     print("teenager")
    16 
    17 s = input("birth: ")
    18 birth = int(s)
    19 if birth < 2000:
    20     print('00前')
    21 else:
    22     print('00后')
    23 --------------------------
    24 
    25 name = [ 'Michael', 'Bob', 'Tracy' ]
    26 scores = [95, 75, 85]
    27 d = {'Michael':95, 'Bob':75, 'Tracy':85}
    28 
    29 print(d['Bob'])
    30 d['Bob'] = 99
    31 print(d['Bob'])
    32 
    33 ------------------------------------
    34 
    35 s = set([1,2,3])
    36 print(s)
    37 
    38 s.add(4)
    39 print(s)
    40 
    41 s.remove(4)
    42 print(s)
    43 
    44 s2 = set([2,3,4])
    45 s3 = s & s2
    46 print(s3)
    47 
    48 ss = s | s2
    49 print(ss)
    50 
    51 a = ['c', 'b', 'a']
    52 a.sort()
    53 print(a)
    54 
    55 a = 'abc'
    56 b = a.replace('a', 'A')
    57 print(b)
    58 print(a.replace('a', 'A'))
    59 print(a)
    60 
    61 '''
      1 '''
      2 def my_abs(x):
      3     if not isinstance(x, (int, float)):
      4         raise TypeErr("bad operand type")
      5     if x>=0:
      6         return x
      7     else:
      8         return -x
      9 
     10 print(my_abs(-11))
     11 
     12 print(my_abs(9))
     13 -----------------------------------------
     14 
     15 import math
     16 def move(x, y, step, angle=0):
     17     nx = x + step * math.cos(angle)
     18     ny = y - step * math.sin(angle)
     19     return nx, ny
     20 
     21 x, y = move(100, 100, 60, math.pi /6)
     22 print(x, y)
     23 
     24 #返回一个turple
     25 r = move(100, 100, 60, math.pi /6)
     26 print(r)
     27 
     28 
     29 def quadratic(a, b, c):
     30     delt = b*b-4*a*c
     31     if delt >= 0:
     32         sqrt_delt = math.sqrt(b*b-4*a*c)
     33         return ((-1*b + sqrt_delt)/(2*a) , (-1*b - sqrt_delt)/(2*a))
     34     else:
     35         print("复数解")
     36         return (0,0)
     37 
     38 a=2
     39 b=3
     40 c=1
     41 
     42 print(quadratic(a,b,c));
     43 --------------------------------------
     44 
     45 #位置参数
     46 def power(x):
     47     return x*x;
     48 
     49 def n_power(x, n = 2):
     50     if not isinstance(x, (int)):
     51         raise TypeErr("bad operand type")
     52     s = 1
     53     while n > 0:
     54         n = n-1
     55         s = s*x
     56     return s
     57 
     58 print(n_power(2))
     59 print(n_power(2,10))
     60 
     61 def add_end(L=None):
     62     if L is None:
     63         L=[]
     64     L.append('END')
     65     return L
     66 
     67 print(add_end([1,2,3]))
     68 print(add_end())
     69 print(add_end())
     70 
     71 
     72 #可变参数
     73 #number 被作为一个tuple处理,number 可以是一个list
     74 def calc(*number):
     75     sum = 0
     76     for n in number:
     77         sum = sum + n*n
     78     return sum
     79 
     80 print(calc(1, 2, 3))
     81 
     82 #关键字参数
     83 #允许传入任意个参数
     84 def person(name, age, **kw):
     85     print('name', name, 'age', age, 'other', kw)
     86 
     87 person('Michael', 30, city='ab', job='worker')
     88 
     89 extra = {'city':'Beijing', 'job':'Engineer'}
     90 person('Jack', 24, city=extra['city'], job=extra['job'])
     91 
     92 person('Jessy', 26, **extra)
     93 
     94 
     95 #命名关键字参数
     96 def person(name, age, **kw):
     97     if 'city' in kw:
     98         pass
     99     if 'job' in kw:
    100         pass
    101     print('name:', name, 'age:', age, 'other:', kw)
    102 
    103 person('Jack', 24, city='Beijing', addr='Chaoyang', zipcode=123456)
    104 
    105 
    106 def product(*arg):
    107     y = 1
    108     for i in arg:
    109         y = y*i
    110     return y
    111 
    112 print(product(5))
    113 print(product(5,6))
    114 print(product(5,6,7))
    115 print(product(5,6,7,9))
    116 '''
    117 
    118 '''
    119 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。
    120 这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只
    121 占用一个栈帧,不会出现栈溢出的情况。
    122 '''
    123 '''
    124 def fact(n):
    125     return fact_iter(n, 1)
    126 
    127 def fact_iter(num, product):
    128     if num == 1:
    129         return product
    130     return fact_iter(num-1, num*product)
    131 
    132 
    133 
    134 from tkinter import *
    135 import tkinter.messagebox as messagebox
    136 
    137 class Application(Frame):
    138     def __init__(self, master=None):
    139         Frame.__init__(self, master)
    140         self.pack()
    141         self.createWidgets()
    142 
    143     def createWidgets(self):
    144         self.nameInput = Entry(self)
    145         self.nameInput.pack()
    146         self.alertButton = Button(self, text='Hello', command=self.hello)
    147         self.alertButton.pack()
    148 
    149     def hello(self):
    150         name = self.nameInput.get() or 'world'
    151         messagebox.showinfo('Message', 'Hello, %s' % name)
    152 
    153 app = Application()
    154 # 设置窗口标题:
    155 app.master.title('Hello World')
    156 # 主消息循环:
    157 app.mainloop()
    158 ------------------------------------------
    159 
    160 #汉诺塔 递归
    161 def move(n, a, b, c):
    162     if n == 1:
    163         print('move', a, '-->', c)
    164     else:
    165         move(n-1, a, c, b)
    166         move(1, a, b, c)
    167         move(n-1, b, a, c)
    168 
    169 move(4, 'A', 'B', 'C')
    170 
    171 L = list(range(100))
    172 L1 = L[:]#复制了一个L对象,由L1指向之
    173 
    174 L[0] = 9
    175 print(L[0])
    176 print(L1[0])
    177 
    178 print((0,1,2,3,4,)[:3])
    179 -----------------------
    180 '''
    181 #实现trim函数,去除字符串前后的空格 
    182 def trim(s):
    183     #起始位置
    184     a = 0
    185     #结束位置
    186     b = 0
    187     for c in s:
    188         if c.isspace():
    189             a += 1
    190         else:
    191             break
    192 
    193     for c in s:
    194         if c.isspace():
    195             b += 1
    196         else:
    197             b = 0
    198     b = len(s) - b
    199     print(a,b)
    200     return s[a:b]
    201 
    202 #print(trim('   hello   '))
    203 '''''''''
    204 
    205 #使用递归
    206 def trim(s):
    207     if s[:1] == ' ':
    208         return trim(s[1:])
    209     elif s[-1:] == ' ':
    210         return trim(s[:-1])
    211     else:
    212         return s
    213 
    214 
    215 s = '   hello  '
    216 print(trim(s))
    217 ------------------------------------
    218 
    219 dict = {'a':1, 'b':2, 'c':3}
    220 for key in dict:
    221     print(key)
    222 
    223 from collections import Iterable
    224 
    225 a = 123
    226 
    227 if( isinstance(a, Iterable)):
    228     print(a, "is iterable")
    229     print("%s is iterable" % a)
    230 else:
    231     print(a, "is not iterable")
    232     print("%s is not iterable" % a)
    233 
    234 -------------------------------------
    235 L = []#[1, 3, 4, 9]
    236 
    237 def findMinAndMax(L):
    238     if not len(L):
    239         return (None, None)
    240     max = min = L[0]
    241     for i in L:
    242         if (i < min):
    243             min = i
    244         if (i > max):
    245             max = i
    246 
    247     return (min, max)
    248 
    249 print(findMinAndMax(L))
    250 
    251 print([m + n for m in 'ABC' for n in 'XYZ'])
    252 
    253 import os 
    254 print([d for d in os.listdir('.')])
    255 
    256 d = {'x':'A', 'y':'B', 'z':'C'}
    257 for v, k in d.items():
    258     print(k, '=', v)
    259 
    260 ---------------------------------------------
    261 L1 = ['Hello', 'World', 18, 'Apple', None]
    262 #if条件放到了最后==!
    263 L2 = [s.lower() for s in L1 if(isinstance(s, str))]
    264 
    265 print(L2)
    266 ---------------------------------------------
    267 g = (x*x for x in range(10))
    268 for n in g:
    269     print(n)
    270 -------------------------
    271 
    272 def fib(max):
    273     n, a, b = 0, 0, 1
    274     while n < max:
    275         print(b)
    276         a, b = b, a+b
    277 
    278         n = n+1
    279     return 'done'
    280 print(fib(3))
    281 
    282 def f(max):
    283     n, a, b = 0, 0, 1
    284     while n < max:
    285         yield b
    286         a, b = b, a+b
    287         n = n+1
    288     return 'done'
    289 
    290 d = f(10)
    291 for i in d:
    292     print(i)
    293 
    294 '''
    295 
    296 
    297 #杨辉三角
    298 def triangles():
    299     a=[1]
    300     while True:
    301         yield a
    302         a=[sum(i) for i in zip([0]+a,a+[0])]
    303 n=0
    304 for t in triangles():
    305     print(t)
    306     n=n+1
    307     if n == 10:
    308         break
  • 相关阅读:
    silverlight的Datagrid控件列绑定属性笔记
    VC字符串处理整理
    Combobox实现多项选择 Silverlight下“Combobox”怎样实现多项选择?
    C# 类初始化顺序
    Silverlight程序设置断点无法进入调试的解决方案
    有哪些适合新手练手的Python项目?
    Ubuntu 终端常用命令
    浅析python 中__name__ = '__main__' 的作用
    py thon 多线程(转一篇好文章)
    python os.path模块
  • 原文地址:https://www.cnblogs.com/mofei004/p/9413314.html
Copyright © 2020-2023  润新知