Skip to content

Python 语法 #140

Description

@nonocast

python2和python3是两个不兼容的版本,意味着需要同时安装,有些库就支持2你也没办法,

$ python2 --version
Python 2.7.15
$ python3 --version
Python 3.6.5 :: Anaconda, Inc.

Anaconda提供了一个deep learning的package, 包含了conda, Python在内的超过180个科学包及其依赖项,简单理解就是一个全家桶。解决两个主要问题:

  • 提供了包管理功能,Windows 平台安装第三方包经常失败的场景得以解决
  • 提供环境管理的功能,功能类似 Virtualenv,解决了多版本Python并存、切换的问题

简单理解一下python配套,原先都是采用pip/virtualenv来做包管理和环境切换,conda可以理解为同时结合了pip和virtualenv。

Anaconda、conda、pip、virtualenv的区别 – 码中人

ipython是一个增强版的python shell (repl),建议安装。

使用IPython有哪些好处? - 知乎

基础语法

这里以python3说明,python2只是为了兼容老版本的内容。

app.py

print('hello world')
  • 和javascript一样的动态脚本语言
  • 行末分号可加可不加,google style建议不加
  • 字符串可用单引号或双引号,google style建议用单引号

app.py

import math

'''
多行注释
基本类型: int, bool, float, str, list ,tuple, dict
'''
print('hello world')
print(math.pi)

name = 'nonocast'
age = 16
print('old: %s, way' % name)
print('old: %s - %d, way' %(name, age))
print('new: {}, way'.format(name))

names = ['zhang', 'wang', 'cao']
for name in names:
  print(name)

object1 = {
  'name': 'nonocast',
  'age': 16
}
for key in object1:
  print('k: {} v: {}'.format(key, object1[key]))

# function
def hello():
  print('hello')

hello()

def foo(bar):
  print(bar)

foo('nonocast')

模块和包

一个文件一个模块,这个和javascript也是一样的, 通过import导入

  • import pkg
  • import pkg as p
  • from pkg import x # 仅导入模块的部分

foo.py

def bar():
  print('hi, everyone')

app.py

import foo
foo.bar()

一个目录形成一个包,
space/room.py

def hi():
  print('space >>> room')

space/desk.py

def hi():
  print('space >>> desk')

app.py

import space.room
import space.desk

space.room.hi()
space.desk.hi()

参考文档:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions