anacodnda是什么?为什么要用anaconda?以及怎么安装?
Anaconda 是一个可用于科学计算的 Python 发行版,支持 Linux、Mac、Windows系统,内置了常用的科学计算包。它解决了官方 Python 的两大痛点。
anaconda安装过程 —我是按照百度的anaconda安装的。
一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。
在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
Python的解释器如今有多个语言实现,我们常用的是CPython(官方版本的C语言实现),其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译)
password = raw_input("请输入密码:")
print ('您刚刚输入的密码是:', password)
1).
a = input('please input name')
print(a)
报错:
将zhangsan赋值给了a,若想输出zhangsan字符串用Python2时需加’zhangsan’
2).python3中
格式符号 | 转换 |
---|---|
%c | 字符 |
%s | 通过str() 字符串转换来格式化 |
%i | 有符号十进制整数 |
%d | 有符号十进制整数 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写字母) |
%X | 十六进制整数(大写字母) |
%e | 索引符号(小写’e’) |
%E | 索引符号(大写“E”) |
%f | 浮点实数 |
%g | %f和%e 的简写 |
%G | %f和%E的简写 |
变量 , 其实就是计算机内存中的一块储存空间 , 用来存储CPU需要使用的数据 ,而这个储存空间需要一个名字 , 这个名字的统称就叫变量 。
问:怎样知道一个变量的类型呢?
google的python的命名规范:
命名样式 | 命名类型 |
---|---|
module_name | 模块 |
package_name | 包 |
ClassName | 类 |
method_name, | 方法 |
ExceptionName | 异常 |
function_name | 函数 |
GLOBAL_VAR_NAME | 全局变量 |
instance_var_name | 实例 |
function_parameter_name | 参数 |
local_var_name | 本变量 |
命名规则:
小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:FirstName、LastName
不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词,比如send_buf
3. 类
总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。
4. 函数&方法
小写+下划线
注意:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。
5. 函数和方法的参数
如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线
6. 全局变量
对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。
注意:应避免使用全局变量
7. 变量
小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1
注意:
1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。
2.私有类成员使用单一下划线前缀标识。
3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。
8. 常量
常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。
9. 异常
以“Error”作为后缀。
文件名
全小写,可使用下划线
10. 包
应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。
11. 模块
与包的规范同。如mymodule。
12. 缩写
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
例如:
function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等。
13. 前导后缀下划线
一个前导下划线:表示非公有。
一个后缀下划线:避免关键字冲突。
两个前导下划线:当命名一个类属性引起名称冲突时使用。
两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
注意:关于下划线的使用存在一些争议。
14. 特定命名方式
主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如
class Base(object):
def init(self, id, parent = None):
self.id = id
self.parent = parent
def message(self, msgid):
其中 id、parent 和 message 都采用了系统保留字命名法。
1.Python中的注释有单行注释和多行注释:
2.pycharm中同时注释多行代码快捷键:
代码选中的条件下,同时按住 Ctrl+/,被选中行被注释,再次按下Ctrl+/,注释被取消
1)字典中的key,value。person={name:‘张三’}
列表中list[start : end : step]start:起始位置,end:结束位置,step:步长。
元组中tup2 = (1, 2, 3, 4, 5, 6, 7 )print "tup2[1:5]: ", tup2[1:5]
2)python语法中没有括号限定子模块的范围,用冒号:表示子模块的开始。有缩紧tab表示语法块。(类,方法,if,esle,while,for等)
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
help()函数,相对于dir()函数,不光有属性,还多了属性介绍。
4. 查看python所有的关键字:help(“keywords”)
5. 查看python所有的modules:help(“modules”)
6. 单看python所有的modules中包含指定字符串的modules: help(“modules yourstr”)
7. 查看python中常见的topics: help(“topics”)
8. 查看python标准库中的module:import os.path + help(“os.path”)
9. 查看python内置的类型:help(“list”)
10. 查看python类型的成员方法:help(“str.find”)
11. 查看python内置函数:help(“open”)
1)可以使用import将一个源文件导入,并可以使用该模块的方法。可以单个模块导入,也可以同时导入多个模块,还可以导入模块的部分方法。
2)sys.path.append(’…/…/bole_untils’)#可以确保先搜索这个路径,一般是导入自己的工具包时常用。
3)import queryengine as qe #添加别名,方便使用
4)这种格式用于大型的模块,可以只导入需要的方法即可。from_future_import division
pep8是python的编码规范。主要对代码编排,文档编排,空格使用、注释、文档描述、命名规范以及编码建议等。在写程序时如果都遵循这个规则,很大程度提升了代码的可阅读性。
Python PEP8 编码规范中文版
代码不符合PEP8规范的,在PyCharm中,不符合规范的代码下面会有波浪线提示。那么有没有办法快速格式化代码使之符合PEP8规范呢?
在pycharm中用ctrl+alt+l对文件自动整理为pep8编码格式。
int是整型
float是浮点型
bool True Flase
c = 10e2=1000.0(e计数法是浮点数)
a = 10+6j = complex(10,6)
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
运算符 | 介绍 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
if a in list:
print('is here')
运算符 | 描述 | 示例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
a = 20
b = 20
if a is b:
print('yes')
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 ‘AND’ |
^| | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |