python_01_基础篇上

  • 目录
  • python简介
  • python变量
  • 数据类型

第一节 简介

Python 简介

Python 安装
More info: 官网

Python第一个程序斐波那契数列

1
2
3
4
5
6
7
8
9
# Python 3: Fibonacci series up to n
>>> def fib(n):
>>> a, b = 0, 1
>>> while a < n:
>>> print(a, end=' ')
>>> a, b = b, a+b
>>> print()
>>> fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

Python 注释
单行注释:#
多行注释:英文三引号 ‘’’
‘’’
say somethig
‘’’
有种特殊的用法,此时并非注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@apt:/mnt/proper# cat people_info.py 
#!/usr/bin/env python3
name = input("your name: ").strip()
age = input("your age: ").strip()
salary = input("your money: ").strip()

info = ''' -------- day day up ------------
name: %s
age: %s
salary: %s
''' % (name, age, salary)

print(info)
root@apt:/mnt/proper# python3 people_info.py
your name: wxq
your age: 18
your money: 5000
-------- day day up ------------
name: wxq
age: 18
salary: 5000

Python代码长相

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env python3                  # (1)程序起始行
"this is a test module" # (2)模块文档(文档字符串)
import os # (3)模块导入
import sys
debug = True # (4)全局变量定义
class FooClass(object): # (5)类定义
"Foo class"
pass
def func(*args, **kwargs): # (6)函数定义
"test function"
foo = FooClass()
if debug:
print("run test()")
if __name__ == '__main__': # (7)主程序
func()

第二节 变量

2.1 变量规范

变量: 字母,数字,下划线且不能以数字开头,并系统己经引用的关键字不能为变量名
关键字
[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’,
‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

1
2
3
4
In [2]: name = "wxq"

In [3]: print(name)
wxq

2.2 变量标准

eg: age_of_name = ‘wxq’ #习惯上

AGE_OF_NAME = "XX"  #常量
Age_Of_Name = "XX"  #驼峰体
Age_of_name = "xx"  #类名

第三节 数据类型

3.1 数字

int(整型)
long(长整型) python3 中己经没有了
float(浮点型)
complex(复数)

3.2 布尔值

True 1
False 0

3.3 字符串

不可变类型
字符串常用功能:
字符串拼接

join()方法: 用于指定字符把序列中的每一个元素连接起来

1
2
3
4
In [11]: str = '_'
In [12]: seq = ('a', 'b', 'c')
In [13]: str.join(seq)
Out[13]: 'a_b_c'

移除前后空白
分割
len()长度
index()索引
split()切片
格式化输出
% 格式化输出
%s 字符串
%d 数字
%f 符点
%r 原生字符串,不会对\n \t进行转换

1
2
3
In [5]: name = 'wxq'
In [6]: print("hello, %s" % name)
hello, wxq

1
2
3
4
# 字符串.center()方法+颜色格式化输出
In [22]: print("\033[32;1m%s\033[0m" % "wxq".center(50, '-'))

-----------------------wxq------------------------

format 格式化输出

1
2
In [7]: "<{tag}>{str}</{tag}>".format(tag='b', str='hello world')
Out[7]: '<b>hello world</b>'

3.4 列表

可变类型
name = [‘hello’, ‘world’]
通过下标访问列表中元素,下标从0开始计数

1
2
3
4
5
In [9]: name[0]
Out[9]: 'hello'

In [10]: name[-1]
Out[10]: 'world'

列表常用操作:
切片:取出多个元素
追加
插入
修改
删除
扩展

3.5 字典

python支持dictionary,采用key-value存储方式,在存放时根据key算出value的存放位置,这样取的时候根据key直接拿到value,这也说明了为什么字典查找速度比列表快的原因。

由于dict根据key来计算value的存储位置,就决定了dict的key必须是不可变对象,利于每次计算相同的key得出的相同的结果,这个通过key计算位置的算法称为哈希算法(Hash)。要保证hash的正确性,作为key的对象就不能变.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
In [2]: dict_test = {}
In [3]: for i in range(4):
...: k = 'f%s' % (i+1)
...: v = 'v%s' % i
...: dict_test[k] = v
...:
In [4]: dict_test
Out[4]: {'f1': 'v0', 'f2': 'v1', 'f3': 'v2', 'f4': 'v3'}

In [5]: dict_test.get('f4')
Out[5]: 'v3'

In [6]: for k,v in dict_test.items():
...: print(k,v)
...:
('f1', 'v0')
('f2', 'v1')
('f3', 'v2')
('f4', 'v3')

3.6 元组

3.7 集合

可变集合
集合:一组无序排列的可哈希的值,集合没有特定语法格式,使用工厂函数创建。
支持:
支持集合关系测试:并集
支持成员关系测试:in /not in/迭代
不支持: 索引,元素获取,切片

集合创建

1
2
3
4
5
6
7
8
>>> set1 = set([1,2,3])    # 用set创建
>>> set1
{1, 2, 3}
>>> s1 = {'a', 'b', 'c'} # 或用{}创建
>>> s1
{'b', 'c', 'a'}
>>> type(s1)
<class 'set'>

项目 描述 符号表示
len(s1) 返回s1项的长度 len(s1)
s1.copy 制作s1的副本
s1.difference(s2) 求差集,返回所有在s1中,但不在s2中的项 s1 - s2
s1.intersection(s2) 求交集,返回所有同时在s1 s2中的项 s1 & s2
s1.union(s2) 求并集,返回所有在s1或s2中的项 s1 l s2(竖线)
s1.symmetric_differencee(s2) 求对称差集,返回所有在s1或s2中,但又不同时在s1 s2中的项,即并集减交集 s1 ^ s2
s1.isdisjoin(s2) 如果s1 s2没有相同项,则返回True
s1.issubset(s2) 如果s1是s2的一个子集,则返回True
s1.issuperset(s2) 如果s1是s2的一个父集,则返回True
max(s1) 求最大值 max(s1)
min(s1) 求最小值 min(s1)

3.8 集合forzent()

可变集合

PyCharm基本使用-01

入门

More info: 参考官网 下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
1 在Pycharm为你的python项目配置python解释器
Project当前项目名为>>Project Interpreter >> add Local
2 在Pycharm下创建Python 文件,Python模块
File>>New>>Python file
File >> New >> Python Package
3 使用Pycharm安装python 三方模块
Project 当前项目名>> Project Interpreter >> 点击右侧绿色小加号
4 Pycharm基本设置,例如不使用tab, tab=4空格,字体,字体颜色,主题,脚本设置,显示行号等,
如何导出入导入自定义设置
1 不使用tab,tab=4空格:Editor>>Code Style>>python
2 字体,字体颜色:Editor> Color&Fronts >> python
3 关闭自动更新:Apperance& Behavior > System Setting >> Updates
4 脚本关设置: Editor>> File and Code Templates >> Python Script 注:其它类似
5 显示行号: Editor>> Geratal >> Apperance >> Show Line number 注:2016.2默认显示行号
6 右侧坚线是PEP8的代码规范,提示一行不要超过120个字符
7 导出,导入你自定义的配置:File >> Export Settings, Import Settings
5 常用快捷键,例如复制当前行,删除当前行,批量注释,缩进,查找和替换
1 常用快捷键的查询和配置:Keymap
1 Ctrl + D : 复制当前行
2 Ctrl + E : 删除当前行
3 Ctrl + Enter 快捷换行
4 Ctrl + / 快捷注释,(选中多行后可以批量注释)
5 Tab: 缩进当前行(选中多行后可以批量缩进)
6 Shift + Tab : 取消缩进(选中多行后可以批量取消缩进)
7 Ctrl + F: 查找
8 Ctrl + H : 替换
9 批量注释:ctrl + ?
6 Pycharm安装插件,例如Markdown supprot,数据库支持插件等
1 Plugins > Browse reposltories (下方三个按钮中间寻个)>>
搜索 markdown supprot > Install
2 右上解View有三个选项可选,一般我们都用中间那个左侧编写,右侧实时预览
7 Git配置 ?
1 需要本地安装好git
2 Version control > git
3 配置了git等版本控制系统之后,可以很方便的diff查看文件的不同
8 常用操作指南,例如复制文件路径,在文件管理中打开,快速定位,查看模块结构视图,tab批量换space ,TODO的使用 ,
Debug的使用,
1 复制文件路径: 左侧文件列表右键选中的文 件> Copy Path
2 在文件管理器中打开:右键选中的文件>>往下找到show In Explorer
3 快速定位: Ctrl + 某些内键模块之后,点击在源文件中展开
4 查看结构: IDE左侧边栏Structure 查看当前项目的结构
5 tab 批量换space: Editor > Convert Indents
6 Todo的使用: #todo要记录的事情
7 tab页上右键 >> Move Right (Down) , 把当前Tab 页移到窗口右边(下边),方便对比
8 文件中右键 >>Local History 能够查看文件修改前后对比
9 IDE右下解能看到一些有用的信息,光标当前在第几行的基本几个字符,当前回车换行,当前编码类型 ,
当前git 分支
10 IDE 右侧边栏>> Database
9 如何去掉烦人的波浪线?PEP8是什么?

博客声明

.

公告


本博客属个人所有,不涉及商业用途,本人保留追究其法律责任的权利。

本博客为个人随笔所写,内容大多取自网络或个人经验,包括老男孩、马哥、廖雪峰、林海峰、小甲鱼

及Python开发者,纯为个人学习记录所用.

按金庸武侠秘籍上说就是本博客纯属虚构,如有雷同,纯属巧合.

.


如涉及版权问题及时联系作者 wxqnote@163.com

为什么写博客

.

关于作者

欢迎大家来到个人博客,我来自成都无疑不幸与万幸是北漂IT engineer ! 尤如www.digmyth.com,

一个想要遆造神话却总在路上的人。


.

一个选择

至于为什么写博客,有很多原因, 一段时间,一个心境,一段经历,一个情怀。在一个适当的时间

做适当的事,想要做的事,没有目的,如半夜突然起来想写下一段话,转身安然入睡。


.

认知时间

时间对年轻人来说太快了,2016年己远去,2017年己来临,刚好2017年1月1日,此时成立博客也许是

天时地利。各大互联网产品创业思路一是提供服务优化它人时间如知识产品,二是让它人上瘾拖住

它的时间如微信朋友圈。会在不知不觉中时间己去,套用罗振宇跨年演讲上的一句话,有时你什么

错都没有,你就是老了。可能是因为身处互联网圈的原因,信息发展太快着时让人有种焦虑感,让人

很着急,告别了过去却抓不到未来。此时我要做的就是脚踏实地做自己正在做的事情,就会让自己

很充实.


.

共鸣共勉

欲望勃发节奏飞速的当下,如果不能够保持淡定和从容,不具有宠辱不惊的修养,就很难拥有一颗

平常恬淡的心境。更无法在纷乱中理清头绪,认清自我,认清形势,找准坐标,在反思中沉淀,在

沉淀中积累,才不会迷失方向,才不会迷失自我。 越是浮躁越是保持淡定,越是功利越是要适度恬静.

焦虑和躁动不仅会折损你的心智,更会戕害你的身体,经过了不平凡不寻常的年头,度过了最艰难

的岁月,再大的风险和考验都可以轻轻的付之一笑.有定力的人才有希望,告别2016,迎来2017,善

待自己,给自己的心灵除除尘,给自己的灵魂洗洗礼, 给自己多些淡定和从容.


.

记录点滴

记录一个想要遆造神话却总在路上的人的点滴,代表曾经来过,有些事我做过。。。