• Python基本语法练习笔记(一)


      1 ####################################################
      2 ## 1. 基本操作
      3 ####################################################
      4 
      5 python ***.py     # 即可执行py文件.
      6 # cmd 输入 python,即可进入python命令界面,quit() 退出.
      7 print()   # 控制台打印
      8 input()   # 从控制台获取输入数据
      9 len()     # 获取长度
     10 
     11 ####################################################
     12 ## 2. 基本数据类型和操作符
     13 ####################################################
     14 
     15 # 控制台可直接进行 加减乘除取余运算.
     16 2**3      # => 8 (2的3次方)
     17 
     18 not True      # => False
     19 not False     # => True
     20 
     21 # True and False 代表1和0
     22 True + True   # => 2
     23 True * 8      # => 8
     24 False - 5     # => -5
     25 
     26 bool(0)       # => False
     27 bool(4)       # => True
     28 bool(-6)      # => True
     29 0 and 2       # => 0
     30 -5 or 0       # => -5
     31 
     32 ####################################################
     33 ## 3. 变量和集合
     34 ####################################################
     35 
     36 # string
     37 "Hello " + "world!"     # => "Hello world!"
     38 "Hello " "world!"       # => "Hello world!"
     39 "This is a string"[0]   # => 'T'
     40 
     41 "{} can be {}".format("Strings", "interpolated")  # => "Strings can be interpolated"
     42 "{0} be nimble, {0} be quick, {0} jump over the {1}".format("Jack", "candle stick")
     43 "{name} wants to eat {food}".format(name="Bob", food="lasagna")  # => "Bob wants to eat lasagna"
     44 "%s can be %s the %s way" % ("Strings", "interpolated", "old")
     45 
     46 name = "Reiko"
     47 f"{name} is {len(name)} characters long."
     48 
     49 -----------------------------------------------------
     50 
     51 # 三目运算
     52 "yahoo!" if 3 > 2 else 2  # => "yahoo!"
     53 
     54 -----------------------------------------------------
     55 
     56 # Lists store sequences
     57 li = []
     58 other_li = [3, 4, 5]
     59 li.append(1)    # li is now [1]
     60 li.append(2)    # li is now [1, 2]
     61 li.append(4)    # li is now [1, 2, 4]
     62 li.append(3)    # li is now [1, 2, 4, 3]
     63 # Remove from the end with pop
     64 li.pop()        # => 3 and li is now [1, 2, 4]
     65 li.append(3)    # li is now [1, 2, 4, 3]
     66 li[0]           # => 1
     67 # Look at the last element
     68 li[-1]          # => 3
     69 li[1:3]         # => [2, 4]
     70 li[2:]          # => [4, 3]
     71 li[:3]          # => [1, 2, 4]
     72 # li[start:end:step]
     73 li[::2]         # =>[1, 4]
     74 li[::-1]        # => [3, 4, 2, 1]
     75 li2 = li[:]     # => li2 = [1, 2, 4, 3], but li2 is li[:] will result in false
     76 del li[2]       # li is now [1, 2, 3]
     77 li.remove(2)    # 移除 "2"
     78 li.insert(1, 2) # Index 1 插入 "2"
     79 li.index(2)     # => 1  "2"的 Index
     80 li + other_li   # => [1, 2, 3, 3, 4, 5]
     81 li.extend(other_li)  # li Now is [1, 2, 3, 3, 4, 5]
     82 1 in li         # => True
     83 
     84 # array矩阵a
     85 import numpy
     86 a = numpy.array([1, 2, 3],
     87                 [4, 5, 6],
     88                 [7, 8, 9])
     89 a[:, 0: 2]        # ","前代表行,后代表列, 冒号占位表示所有行, 0和 1 列
     90 a[1, :]            # 下标为 1 的行, 所有列的内容
     91 
     92 -----------------------------------------------------
     93 
     94 # Tuples are like lists but are immutable.
     95 tup = (1, 2, 3)
     96 tup[0]          # => 1
     97 tup[:2]         # => (1, 2)
     98 # 长度为 1的 Tuples,元素后面必须有逗号.其他长度的则不用
     99 type((1))       # => <class 'int'>
    100 type((1,))      # => <class 'tuple'>
    101 type(())        # => <class 'tuple'>
    102 tup + (4, 5, 6) # => (1, 2, 3, 4, 5, 6)
    103 # You can unpack tuples (or lists) into variables
    104 a, b, c = (1, 2, 3)         # a is now 1, b is now 2 and c is now 3
    105 a, *b, c = (1, 2, 3, 4)     # a is now 1, b is now [2, 3] and c is now 4
    106 d, e, f = 4, 5, 6
    107 e, d = d, e     # d is now 5 and e is now 4
    108 
    109 -----------------------------------------------------
    110 
    111 # Dictionaries store, mappings from keys to values, Similar to the java Map
    112 empty_dict = {}
    113 filled_dict = {"one": 1, "two": 2, "three": 3}
    114 # keys are immutable types, include ints, floats, strings, tuples
    115 invalid_dict = {[1,2,3]: "123"}     # TypeError: key is 'list'
    116 valid_dict = {(1,2,3): [1,2,3]}
    117 # 根据键取值
    118 filled_dict["one"]          # => 1
    119 filled_dict["four"]         # KeyError
    120 # 遍历键和值
    121 list(filled_dict.keys())    # => ["three", "two", "one"]
    122 list(filled_dict.values())  # => [3, 2, 1]
    123 # 只可对键 验证是否存在
    124 "one" in filled_dict        # => True
    125 1 in filled_dict            # => False
    126 # Use "get()" method to avoid the KeyError
    127 filled_dict.get("one")      # => 1
    128 filled_dict.get("four")     # => None
    129 # The get method supports a default value when the value is missing
    130 filled_dict.get("one", 4)   # => 1
    131 filled_dict.get("four", 4)  # => 4
    132 # setdefault() 只在键不存在时才能赋值
    133 filled_dict.setdefault("five", 5)
    134 filled_dict.setdefault("five", 6)   # "five" is still '5'
    135 # Adding or update
    136 filled_dict.update({"four":4})
    137 filled_dict[4] = 4          # ibidem
    138 # Remove
    139 del filled_dict["one"]
    140 # After Python 3.5 you can also use the additional unpacking options ???
    141 {'a': 1, **{'b': 2}}        # => {'a': 1, 'b': 2}
    142 {'a': 1, **{'a': 2}}        # => {'a': 2}
    143 
    144 -----------------------------------------------------
    145 
    146 # Sets
    147 empty_set = set()
    148 invalid_set = {[1], 1}      # TypeError: unhashable type: 'list'
    149 valid_set = {(1,), 1}
    150 some_set = {1, 1, 2, 2, 3, 4}       # some_set is now {1, 2, 3, 4}
    151 some_set.add(5)             # some_set is now {1, 2, 3, 4, 5}
    152 other_set = {3, 4, 5, 6}
    153 some_set & other_set        # => {3, 4, 5}
    154 some_set | other_set        # => {1, 2, 3, 4, 5, 6}
    155 # Do set symmetric difference with ^
    156 {1, 2, 3, 4} ^ {2, 3, 5}    # => {1, 4, 5}
    157 {1, 2} >= {1, 2, 3}         # => False
    158 {1, 2} <= {1, 2, 3}         # => True
    159 2 in filled_set             # => True
    160 
    161 ####################################################
    162 ## 4. 条件语句和迭代
    163 ####################################################
    164 
    165 # if判断
    166 if some_var > 10:
    167     print("some_var is totally bigger than 10.")
    168 elif some_var < 10:
    169     print("some_var is smaller than 10.")
    170 else:
    171     print("some_var is indeed 10.")
    172 
    173 -----------------------------------------------------
    174 
    175 # For loops
    176 for animal in ["dog", "cat", "mouse"]:
    177     print("{} is a animal".format(animal))
    178 for i in range(4):          # 0~4
    179 for i in range(4, 8):       # 4~7
    180 for i in range(4, 12, 3):   # 4,7,10
    181 
    182 -----------------------------------------------------
    183 
    184 # While
    185 x = 0
    186 while x < 4:
    187     print(x)
    188     x += 1
    189 
    190 -----------------------------------------------------
    191 
    192 # Handle exceptions with a try/except block
    193 try:
    194     # Use "raise" to raise an error
    195     raise IndexError("This is an index error")
    196 except IndexError as e:
    197     pass                    # Pass is just a no-op. Usually you would do recovery here.
    198 except (TypeError, NameError):
    199     pass                    # Multiple exceptions can be handled together, if required.
    200 else:                       # Optional clause to the try/except block. Must follow all except blocks
    201     print("All good!")      # Runs only if the code in try raises no exceptions
    202 finally:                    #  Execute under all circumstances
    203     print("We can clean up resources here")
    204 
    205 -----------------------------------------------------
    206 
    207 # Iterable
    208 filled_dict = {"one": 1, "two": 2, "three": 3}
    209 our_iterable = filled_dict.keys()    # type: dict_keys
    210 for i in our_iterable:
    211     print(i)                  # Prints one, two, three
    212 our_iterator = iter(our_iterable)
    213 next(our_iterator)          # => "one"
    214 next(our_iterator)          # => "two"
    215 next(our_iterator)          # => "three"
    216 next(our_iterator)          # Raises StopIteration
    217 list(filled_dict.keys())    # type: list
    218 
    219 ####################################################
    220 ## 5. 方法
    221 ####################################################
    222 
    223 def add(x, y):
    224     print("x is {} and y is {}".format(x, y))
    225     return x, y                # 返回tuples类型值,可省略括号
    226 add(y=6, x=5)                # 任意顺序传入参数
    227 
    228 -----------------------------------------------------
    229 
    230 # 方法传入多个参数写法:
    231 def all_the_args(*tuples, **map):
    232     print(tuples)
    233     print(map)
    234 all_the_args(1, 2, a=3, b=4)        # prints:(1, 2){"a": 3, "b": 4}
    235 # 或调换顺序,先申明变量:
    236 args = (1, 2, 3, 4)
    237 kwargs = {"a": 3, "b": 4}
    238 all_the_args(*args)
    239 all_the_args(*args, **kwargs)
    240 
    241 -----------------------------------------------------
    242 
    243 # Function Scope
    244 x = 5
    245 def set_x(num):
    246     x = num                    # => 43, Local var x
    247     print(x)                # => 43
    248 def set_global_x(num):
    249     global x                # global var x
    250     print(x)                   # => 5
    251     x = num                    # global var x is now set to 6
    252     print(x)                   # => 6
    253 set_x(43)
    254 set_global_x(6)
    255 
    256 -----------------------------------------------------
    257 
    258 # Python has first class functions
    259 def create_adder(x):
    260     def adder(y):
    261         return x + y
    262     return adder
    263 add_10 = create_adder(10)
    264 add_10(3)                    # x is 10, y is 3
    265 
    266 -----------------------------------------------------
    267 
    268 # lambda 匿名方法
    269 (lambda x: x > 2)(3)                # => True
    270 (lambda x, y: x ** 2 + y ** 2)(2, 1)# => 5
    271 
    272 -----------------------------------------------------
    273 
    274 # 内置高阶函数???
    275 list(map((lambda x: x**2), [1, 2, 3, 4, 5]))    # map() 逐个把list里面的每个值, 放进前面方法运行 => [1, 4, 9, 16, 25]
    276 list(map(max, [1, 2, 3], [4, 2, 1]))              # => [4, 2, 3]
    277 list(filter(lambda x: x > 5, [3, 4, 5, 6, 7]))  # => [6, 7]
    278 
    279 -----------------------------------------------------
    280 
    281 # 嵌套
    282 [add_10(i) for i in [1, 2, 3]]                    # => [11, 12, 13]
    283 [x for x in [3, 4, 5, 6, 7] if x > 5]              # => [6, 7]
    284  |
    285 return
    286  |
    287 {x for x in 'abcddeef' if x not in 'abc'}          # => {'d', 'e', 'f'}
    288 {x: x**2 for x in range(5)} # => {0:0, 1:1, 2:4, 3:9, 4:16}
    289 {x: x**2 for x in range(5)}
    290 
    291 ####################################################
    292 ## 6. Modules
    293 ####################################################
    294 
    295 # import modules
    296 import math as m
    297 print(math.sqrt(16))          # => 4.0
    298 # get specific functions from a module
    299 from math import ceil, floor
    300 print(ceil(3.7))               # => 4.0
    301 print(floor(3.7))              # => 3.0
    302 dir(math)
    303 
    304 ####################################################
    305 ## 7. read and write
    306 ####################################################
    307 
    308 f = open("***.txt", "r")
    309 g = f.read()
    310 print(g)
    311 f.close()
    312 
    313 f = open("***.txt", "w")
    314 f.write("111111")
    315 f.write("
    ")
    316 f.close()
            积极竞争
        不惧失败
    学习提升
  • 相关阅读:
    UrlRewriter
    PortalBasic Web 应用开发框架
    首页静态化和定时执行
    细谈在C#中读写Excel系列文章之四
    Ubuntu安装SVN及SvnManager
    Select语句导致瓶颈
    策略模式
    抽象工厂
    递归优化之快速排序
    从安装git开始,一步一步把程序发布到AppHarbor
  • 原文地址:https://www.cnblogs.com/acmez/p/13606224.html
Copyright © 2020-2023  润新知