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
浙公网安备 33010602011771号