1)anaconda环境配置
去官网下载,然后在自己的电脑中安装: 安装后的截图: 2)解释器
输出结果:
请输入:10 + 100 110.00a. python变量特征: 在python中,变量名字相当于一个标签。与C/C++不一样的地方在于,python中是以变量的具体值为中心的。
举例如下: a=123 b=123 c=234 a=234 x=123在以上几个变量中,数字值是一直存在内存中的,可以用id函数来查看每个变量内存地址,如id(a),便可以得出a在内存中的地址。
>>> a = 100 >>> id(a) 1375760048上图中,b,x的地址是一样的,c,a的地址是一样的。
b. 命名规则: (1)变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头; (2)变量名不能包含空格,但可使用下划线来分隔其中的单词; (3)不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词; (4)变量名应既简短又具有描述性; (5)慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。
a. dir()的作用: dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
>>> dir(list) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']b. help()的作用: 用于查看函数或模块用途的详细说明
>>> help(list) Help on list object: class list(object) | list() -> new empty list | list(iterable) -> new list initialized from iterable's items | | Methods defined here: | | __add__(self, value, /) | Return self+value. | | __contains__(self, key, /) | Return key in self. | | __delitem__(self, key, /) | Delete self[key]. | | __eq__(self, value, /) | Return self==value. | | __ge__(self, value, /) | Return self>=value. | | __getattribute__(self, name, /) | Return getattr(self, name). | | __getitem__(...) | x.__getitem__(y) <==> x[y] | | __gt__(self, value, /) | Return self>value. | | __iadd__(self, value, /) | Implement self+=value. | | __imul__(self, value, /) | Implement self*=value. | | __init__(self, /, *args, **kwargs) | Initialize self. See help(type(self)) for accurate signature. | | __iter__(self, /) | Implement iter(self). | | __le__(self, value, /) | Return self<=value. | | __len__(self, /) | Return len(self). | | __lt__(self, value, /) | Return self<value. | | __mul__(self, value, /) | Return self*value.n | | __ne__(self, value, /) | Return self!=value. | | __new__(*args, **kwargs) from builtins.type | Create and return a new object. See help(type) for accurate signature. | | __repr__(self, /) | Return repr(self). | | __reversed__(...) | L.__reversed__() -- return a reverse iterator over the list | | __rmul__(self, value, /) | Return self*value. | | __setitem__(self, key, value, /) | Set self[key] to value. | | __sizeof__(...) | L.__sizeof__() -- size of L in memory, in bytes | | append(...) | L.append(object) -> None -- append object to end | | clear(...) | L.clear() -> None -- remove all items from L | | copy(...) | L.copy() -> list -- a shallow copy of L | | count(...) | L.count(value) -> integer -- return number of occurrences of value | | extend(...) | L.extend(iterable) -> None -- extend list by appending elements from the iterable | | index(...) | L.index(value, [start, [stop]]) -> integer -- return first index of value. | Raises ValueError if the value is not present. | | insert(...) | L.insert(index, object) -- insert object before index | | pop(...) | L.pop([index]) -> item -- remove and return item at index (default last). | Raises IndexError if list is empty or index is out of range. | | remove(...) | L.remove(value) -> None -- remove first occurrence of value. | Raises ValueError if the value is not present. | | reverse(...) | L.reverse() -- reverse *IN PLACE* | | sort(...) | L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE* | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __hash__ = None
(1)代码布局
a. 缩进:每一级4个缩进。连续跨行应该使用圆括号或大括号或者使用悬挂缩进。
#首尾不写参数 my_list = [ 1, 2, 3, 4, 5, 6, ] result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', )Tab还是空格:python2中可以混合使用,python3强制只允许一种。
最大长度:79个字符,docstrings/comments则应少于 72字符,用"/"连接两行:
操作符尽可能靠近下一个操作数
空行:用两个空行包裹顶级函数或类,类中的方法定义被一个空白行包围。函数间尽量少的使用空白行(如果是一组逻辑则省略),函数内的逻辑也应尽可能少的使用空白行,除非为了显示更有逻辑性
python3源文件修改应为UTF-8编码,定义标准库必须使用ASCII且内容必须使用英文
单独import必须分两行,from import可以在一行中引入,IMPORT必须在文件头使用,在module comment 和docstrings之后,在模块全局变量或实例之前
提倡绝对导入,但如果绝对导入比较冗长可相对导入,python3中不鼓励,会出现未知bug
通配符导入from import *应尽可能避免
模块级命名应该在docstring之后,任何声明之前(__future__除外)
单双引号没有强制规定,但整个程序应该只使用一种规则,在docstring中应该使用三个双引号“““额 ”””
b. 表达式和语句中的空格 以下几种情况不要使用空格
#括号紧跟的前后 Yes: spam(ham[1], {eggs: 2}) No: spam( ham[ 1 ], { eggs: 2 } ) #逗号加反括号 Yes: foo = (0,) No: bar = (0, ) #逗号,分号,冒号前 Yes: if x == 4: print x, y; x, y = y, x No: if x == 4 : print x , y ; x , y = y , x #切片中的特殊情况:如果有表达式,应保证冒号左右对称(数字不加空格) Yes: ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:] ham[lower:upper], ham[lower:upper:], ham[lower::step] ham[lower+offset : upper+offset] ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)] ham[lower + offset : upper + offset] No: ham[lower + offset:upper + offset] ham[1: 9], ham[1 :9], ham[1:9 :3] ham[lower : : upper] ham[ : upper] #等号两边各加一个空格,不可为了对其而多加 Yes: x = 1 y = 2 long_variable = 3 No: x = 1 y = 2 long_variable = 3 #这些运算符左右各加一个空格:assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not).保证左右对称 Yes: i = i + 1 submitted += 1 x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b) No: i=i+1 submitted +=1 x = x * 2 - 1 hypot2 = x * x + y * y c = (a + b) * (a - b) #关键字或默认赋值时的等号不添加空格: Yes: def complex(real, imag=0.0): return magic(r=real, i=imag) No: def complex(real, imag = 0.0): return magic(r = real, i = imag) #函数的注释冒号紧跟变量名,空一格后写注释,返回值注释->前后均空一格,当给有注释的赋默认值时应在等于前后加空格 Yes: def munge(input: AnyStr): ... def munge() -> AnyStr: ... No: def munge(input:AnyStr = None): ... def munge()->PosInt: ... #混合声明一般不被允许,while,if除外 Yes: if foo == 'blah': do_blah_thing() do_one() do_two() do_three() Rather not: if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three() 注释鼓励使用多行注释,如果是单行,首字母应该大写(中文应该没有这个问题,而且变量的小写在首字母时应保持小写性质)单行注释无需句号,在使用句号后应该用两个空格隔开注释块(block comments):#后加空格注释行(line comments):跟程序至少间隔2个空格,且应该#加一个空格开始文档描述:应包括:公共模块,函数,类以及方法,不应该包括私有模块,但是应该在def后加注释说明实现方式结尾的3引号“”“应该单独列一行(只有一行的除外) ©命名规范不要使用大写的i,小写的L,和大写的O单独命名满足ASCII规则下模块和包应该尽量短,且使用全小写方式,下划线的方式不提倡类命名应该首字母大写(内置类除外)用_co or _contra来区分正反意全局变量名:使用from M import *时,应在M中有__all__机制来阻止全局变量的导出函数名:全小写,下划线区分,一个下划线区分私有变量和私有方法函数和方法变量:在实例方法中永远使用self作为第一个参数,在类方法中永远使用cls做第一个参数如果Foo类中有一个__a的属性,Foo.__a是访问不到该属性的,(Foo.__Foo__a是可以访问到),双下划线应该仅仅被用于设计为子类的类的命名冲突中常量全大写:MAX_OVERFLOW 和 TOTAL.继承:公共属性无下划线(1) python中数值类型,int,float,bool,e记法等:
Python 数值类型包括整型(integer),浮点型(floating point number)和复数(complex number),并且,布尔型(boolean)是整型的子类; 其中,最常用的数值类型包括整型,浮点型和布尔型。
主要内容:
a. 整型(int)定义
直接赋予变量整数值使用构造器 int() 创建 int 类型实例 针对第二种方式,如果没有任何输入参数,那么创建 int 实例值为 0 如果仅输入单个对象,可以输入一个数字,或者一个数字字符串 可选参数 base 表示第一个参数值所属进制,默认为 10,表示输入值为十进制数 取值范围为 0 和 [2, 36] Note:当需要定义输入值的进制时,输入值类型应该为字符串 str 在所有的进制中,2-进制,8-进制 和 16-进制 可以通过添加前缀 0b/0B, 0o/0O, or 0x/0X 的方式进行转换b. 浮点型(float)定义 Note:浮点型(float)等同于 C 语言中的 double 类型
创建 float 值有两种方式:
直接赋予变量整数值使用构造器 float() 创建 float 类型实例 使用第一种方式,如果该数值没有小数,需要添加后缀 .0,否则,解释器会认为这是 int 类型数值 使用第二种方式,如果没有任何输入参数,那么创建 float 实例值为 0.0 也可以输入单个参数,一个数值或者一个数字字符串 Note:使用 float() 构造器还可以定义无穷大(Infinity 或者 inf)和无穷小c. 布尔型(bool)定义
布尔型仅有两个实例对象 False 和 True布尔型是 int 类型的子类,False 等同于 0,True 等同于 1。布尔型无法再被继承使用 对于构造器 bool() 方法来说,如果输入为空或者为 0,得到 False;否则,得到 True;(2)算数运算符: 算术运算符即算术运算符号。是完成基本的算术运算(arithmetic operators) 符号,就是用来处理四则运算的符号 (3)逻辑运算符 逻辑运算符是根据表达式的值来返回真值或是假 (4)成员运算符 用来查找某个变量的值是否在给定的序列中,主要用在字符串、元组和列表。 in:A in B,判断序列B中是否有A,有则返回True,否则返回False。 not in:A not in B,判断序列B中是否有A,没有则返回True,否则返回False。 练
>>> list = [1, 2, 'a', 'b', 3] >>> 1 in list True >>> 4 in list False >>> 4 not in list True >>> 'a' not in list False(5)身份运算符 所谓身份运算符就是比较两个变量(两个名字)是否来自同一个对象(同一个人)。
>>> a = 10 >>> b = 10 >>> a is b True(6) 运算符优先级
