1. 输入/格式化输出:  help('FORMATTING')  可以查看各类的不同要求

each = input("pls input each value\n")
print('each value is {}'.format(each))
count = input("pls input the count\n")
print('{} * {} result is {}'.format(each, count, int(each) * int(count)))

格式化字符串:f

a = 1
b = 2
c = 3
f'{a} + {b} = {c}'

2. 变量:

     大小写敏感;

    第一个字符必须是字母 或 下划线;

    其他部分必须是数字/字母/下划线;

    不能是关键字(keywords)

3. 查看函数的帮助信息:

help('input') 
help('keywords')

 4.  注释: 有下面两种方式:

  a. 行注释;

  b: 函数注释,可以通过help(fun) 方式 打印出 这部分注释信息,3 个 ‘ 或者 " 都可以;

#行注释
a=1 # 定义变量

###函数注释
def fun(start, end):
    ''' 函数中解释:
    连续数【相乘);
    '''
    x = 1
    for i in range(start, end):
        x = x * i
    print(x)

 5. 代码相连: 

1+2+3+4+5
#等价于
1+2+3\
+4+5

 6.变量类型:python 是弱类型语言,主要包含下面4种类型:int/ float/string/bool .

#变量类型判断
type(print)
type(10)

 7. 下面一些运算符可以通过 help("==") 中得到;

  算术运算符: + - * / ,%, //(向下取整), ** (幂)

  比较运算符: ==, !=, >, >= , < , <=

  赋值运算符: =, +=, -= , *=, /=, //=, **=, %=, :=(海象运算符,python3.8 后支持)

  位运算符: >>(二进制左移), <<(右移), &, | , ~(按位取反),^(XOR)

  逻辑运算符: and , or, not

  成员运算法: in, not in

  身份运算符: is, is not  # 用于比较两个存储的单元的位置; == 用于比较两个变量的值

8. 数据结构:

  列表(list) :  数据之间以逗号(,) 分割, 整个列表用[] 包围;细节参考help(list)

ls_1 = list()
ls_2 = []
ls_3 = [1, 2, 3, 4, 5, 'apple', 0.001]
列表索引index:  左->右 0, 1, 2, 3... ;   右->左 -1, -2, -3, -4...;
切片: list[first_index: last_index+1] ; #相当于是前闭后开, 空时默认为头/尾
列表脚本操作符: + (列表组合), * (列表重复), in
列表函数: len, min(#必须要同种类型),del(删除)
列表方法: help(list) 有具体细节
  append(#添加一个元素), count, entend(添加一组列表到后面),index, insert(参数是位置,值), pop,remove(#参数是元素),reverse, sort(要同种类型

   元组(tuple) : 不可以修改, 数据也用(,) 隔开, 整个元组用() 包围;细节参考 help(tuple) 

元组如果只有一个元素定义时候,tuple_1=[1,]   ## 要有,
其他的操作类似list;

   字典(dictionary): 元素为key:val, 每组元素用,隔开, 整个字典用大括号{} 包围; 细节参考help(dict)

   集合(set) : 无序的不重复的序列;元素之间使用, 隔开,整个集合使用大括号{} 包围, 细节参考help(set)

注意点:
#创建空集合时候,要使用set(), 不能直接使用{}, 这个是用来创建空字典的; s_a=set()

两个集合之间使用 & , | , ^ 得这两个集合之间的 集合中 共有的,统合,独有的;

remove/ discard : 都是删除元素,但是discard 用来移除元素时候,如果不存在元素,不会报错;

 9 条件判断:

if condition:
    #operation1
elif  condition:
    #operation2
else:
    #operation 3

 10 循环:for/ while, 其中可以使用break/ continue

#for
for 变量 in 列表:
    #operation1

#while
while 条件:
    #operation

 11. 迭代:解释型语言,可以在执行时候将迭代的过程展开;

  range: range (start, end, step = 1);

  iter: 类似于C++ 中迭代器,将序列化对象不使用index,进行遍历;还有就是使用next 方法遍历所有元素;

  

   zip: 依次从这些对象中分别拿出一个元素,拼成一个元素,返回的是元组,元素数量不同时候,取最小序列;还有zip_longest(itertools)

names=["Ming", "hong"]
ages=[18, 21]
dict(zip(names, ages))  #这算是非常常用的小技巧

 

 

12. 自定义函数:函数返回值 可以为空,直接return 也可以的;

def func(a, b):
    '''函数解释
  '''
    return a + b

   可变参数(mutable): list, dict

  不可改(unmutable) 参数: strings, tuples, numbers 是不可更改对象

  也支持默认参数,例如自带的range 包含3个参数,只是有默认参数,与C++ 类似;

  不定长参数:定义不定长参数时,可在参数前加* 或 **, 当传入参数多与形参时候,超出部分计入不定长参数:

  • *  : 形参前加*, 接收的参数转换为元组tuple
  • ** :  形参前加**, 接收的参数转换为字典dict, 但是参数必须要以赋值形式传入
>>> def func3(x, *y, **z):
...     print("x:", x, type(x))
...     print("y:", y, type(y))
...     print("z:", z, type(z))
... 

  参数作用域:主要是全局变量定义 global 定义全局参数

result=55
def func4(a, b):
    global x, y
    x=a; y=b; result=a+b;
    return

 

  还有globals() 的用法:

#打印所有全局变量
print(globals())  #可以打印出所有全局变量的值;

#使用globals() 方式建立全局变量
def fun5():
    dfg=['aa', 'bb', 'cc']
    for i in dfg:
        #globals()[i] = (i)
        globals()[i] = {i:3}  ##{} 还是() 取决定义的类型
    return aa, bb, cc

w, x, y = fun5()

  函数调用方式:

    默认是按照函数定义顺序传递参数;

    关键字参数: 也可以直接给参数赋值,这样就不用按照定义顺序;

 

   调用函数时,部分参数锁定,用partial 实现

from functools import partial, reduce
from operator import mul, add, xor
new_func = partial(mul, 3)
print(new_func(4))

 

 13. 创建自己的对象- 类

  定义一个类:约定私有变量名带_;

class : 创建类的关键字
name : 类名
def __init__ : 属性,类似C++ 中构造函数;
def func(): 类中定义函数(方法)
self : 定义内置参数
class People:
    def __init__(self, name, hp, damage):
        self.name = name
        self.hp = hp
        self.damage = damage

p1 = People("ming", 12, 2)     

   类中继承:

class Hero(People):  ##继承 People 父类
    def __init__(self, name, hp, damage, country): #子类中如果定义了构造函数,就不会默认调用父类构造函数;否则会自己建立默认构造函数;
                                                   #调用父类构造函数,调用时要保证子类与父类构造函数参数相同;;
        People.__init__(self, name, hp, damage)    #继承父类属性,调用时必须要self;这里要显示调用,否则子类不会调用父类构造函数;因为子类已经定义了构造函数。
        #super().__init__(name, hp,damage) #这种方法也会调用父类;
        self.country = country   
    def func1(self):            #定义类方法时候,一定要加上self;
                                #因为python 中同一个类会产生多个实例,那么在调用的时候就是通过第一个self参数区分是哪个实例调用该方法;
                                #当然在实际调用过程中,self 不需要手动传递;
        print('name is {}'.format(self.name))
        print('hp is {}'.format(self.hp))
        print('country is {}'.format(self.country))

    def func2(self):
        self.func1()     #调用当前类方法时候要用self 
        return

14 模块 与 包 : 

module : 任何后缀为*.py 文件,模块名称就是文件名称
built-in module: python 编译器内置的函数,没有对应的.py 文件
package : python3.3 以上,任何文件夹都可以视为包
object: python 中所有东西都为对象,函数,类,变量

 引入模块 或 包 有下面4中方式: 类似C include

import <package>
import <module>
from <package> import <module or sub-package or object> # 变量 函数
from <module> import <object>

 常见的方法:

from functools import reduce, partial
from operator import add, mul
posted on 2022-06-26 22:32  学海一扁舟  阅读(51)  评论(0编辑  收藏  举报