对于商业项目而言,通常在一个项目中,只有一个 可以直接执行的 Python 源程序
在 Python 社区,吉多被称为“仁慈的独裁者”
同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下
Python
是Java
的 1/5,所以说 人生苦短,我用 Python
Python 2.x 默认不支持中文
Python 2.x 是 过去的版本
Python 3.x 是 现在和未来 主流的版本
Python
的早期版本,这是一个 较大的升级Python 3.0
在设计的时候 没有考虑向下兼容
Python
版本设计的程序都无法在 Python 3.0
上正常执行为了照顾现有的程序,官方提供了一个过渡版本 —— Python 2.6
Python 2.x
的语法和库Python 3.0
的迁移,允许使用部分 Python 3.0
的语法与函数Python 2.7
被确定为 最后一个Python 2.x 版本提示:如果开发时,无法立即使用 Python 3.0(还有极少的第三方库不支持 3.0 的语法),建议
- 先使用
Python 3.0
版本进行开发- 然后使用
Python 2.6
、Python 2.7
来执行,并且做一些兼容性的处理
python shell
好用得多
bash shell
命令exit
In [1]: exit
ctrl+d
用户家目录下的.PyCharmxxxx.x
目录,xxxx.x是PyCharm的版本号。如果要恢复PyCharm的初始设置,可以先退出PyCharm,再删除该文件夹。
PyCharm会在目录下新建一个 .idea 的目录,用于保存 项目相关的信息,例如:解释器版本、项目包含的文件等等
$ tar -zxvf pycharm-professional-2017.1.3.tar.gz
$ sudo mv pycharm-2017.1.3/ /opt/
$ sudo gedit /usr/share/applications/jetbrains-pycharm.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=PyCharm
Icon=/opt/pycharm-edu-3.5.1/bin/pycharm.png
Exec="/opt/pycharm-edu-3.5.1/bin/pycharm.sh" %f
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm
/usr/share/applications/jetbrains-pycharm.desktop
在
ubuntu
中,应用程序启动的快捷方式通常都保存在/usr/share/applications
目录下
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 10 + 20 = 30 |
- | 减 | 10 - 20 = -10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
% | 取余数 | 返回除法的余数 9 % 2 = 1 |
** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
type
import keyword keyword.kwlist
数字类型之间可以直接计算,Bool类型当作1/0.
PEP8
文档地址:https://www.python.org/dev/peps/pep-0008/
谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
"""解释
:param p1: p1的作用
:param p2: p2的作用
:return: 返回内容作用
详细解释
"""
append
, extend
, insert
remove
, clear
, pop
, del
count
, index
() # 空元祖
(5) # int
(5,) # 一个元素的元祖
count
, index
通常元祖内保存的数据类型不同;而list中保存的数据类型相同
di.pop('key')
del di['key']
di.clear()
dic1.update(dic2) # 合并字典,如果key相同,则更新值
方法 | 说明 |
---|---|
string.isspace() | 如果 string 中只包含空格,则返回 True |
string.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True |
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True |
string.isdecimal() | 如果 string 只包含数字则返回 True,全角数字 ,无法判断小数 |
string.isdigit() | 如果 string 只包含数字则返回 True,全角数字 、⑴ 、\u00b2 ,无法判断小数 |
string.isnumeric() | 如果 string 只包含数字则返回 True,全角数字 ,汉字数字 ,无法判断小数 |
string.istitle() | 如果 string 是标题化的(每个单词的首字母大写)则返回 True |
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True |
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True |
方法 | 说明 |
---|---|
string.startswith(str) | 检查字符串是否是以 str 开头,是则返回 True |
string.endswith(str) | 检查字符串是否是以 str 结束,是则返回 True |
string.find(str, start=0, end=len(string)) | 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1 |
string.rfind(str, start=0, end=len(string)) | 类似于 find(),不过是从右边开始查找 |
string.index(str, start=0, end=len(string)) | 跟 find() 方法类似,不过如果 str 不在 string 会报错 |
string.rindex(str, start=0, end=len(string)) | 类似于 index(),不过是从右边开始 |
string.replace(old_str, new_str, num=string.count(old)) | 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次 |
方法 | 说明 |
---|---|
string.capitalize() | 把字符串的第一个字符大写 |
string.title() | 把字符串的每个单词首字母大写 |
string.lower() | 转换 string 中所有大写字符为小写 |
string.upper() | 转换 string 中的小写字母为大写 |
string.swapcase() | 翻转 string 中的大小写 |
方法 | 说明 |
---|---|
string.ljust(width) | 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
string.rjust(width) | 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
string.center(width) | 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 |
方法 | 说明 |
---|---|
string.lstrip() | 截掉 string 左边(开始)的空白字符 |
string.rstrip() | 截掉 string 右边(末尾)的空白字符 |
string.strip() | 截掉 string 左右两边的空白字符 |
方法 | 说明 |
---|---|
string.partition(str) | 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面) |
string.rpartition(str) | 类似于 partition() 方法,不过是从右边开始查找 |
string.split(str="", num) | 以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格 |
string.splitlines() | 按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表 |
string.join(seq) | 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
函数 | 描述 | 备注 |
---|---|---|
len(item) | 计算容器中元素个数 | |
del(item) | 删除变量 | del 有两种方式 |
max(item) | 返回容器中元素最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素最小值 | 如果是字典,只针对 key 比较 |
cmp(item1, item2) | 比较两个值,-1 小于/0 相等/1 大于 | Python 3.x 取消了 cmp 函数 |
描述 | Python 表达式 | 结果 | 支持的数据类型 |
---|---|---|---|
切片 | “0123456789”[::-2] | “97531” | 字符串、列表、元组 |
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|---|---|---|---|
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | [“Hi!”] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 | 字符串、列表、元组 |
in |
3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in |
4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
> >= == < <= |
(1, 2, 3) < (2, 2, 3) | True | 元素比较 | 字符串、列表、元组 |
注意
in
在对 字典 操作时,判断的是 字典的键in
和 not in
被称为 成员运算符for 变量 in 集合:
循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码
# TODO 内容
#!
这个符号叫做 Shebang
或者 Sha-bang
Shebang
通常在 Unix
系统脚本的中 第一行开头 使用which
查询 python3
解释器所在路径$ which python3
#! /usr/bin/python3
$ chmod +x cards_main.py
./cards_main.py
id
函数返回对象实际地址hash
可以计算哈希值函数执行时,需要处理变量时 会:
函数不能直接修改
全局变量的引用
global
关键字global num
如果函数中使用了全局变量,则该全局变量的定义位置,需要在函数调用之前
num = 10
def foo():
print(num)
print(title)
print(bar)
title = "name"
foo() # 打印 num、title, 而对bar报错
bar = "456"
python
中,列表变量调用 +=
本质上是在执行列表变量的 extend
方法,不会修改变量的引用# * args
# **kwargs
def demo(num, *args, **kwargs):
print(num)
print(args)
print(kwargs)
demo(1)
# 1
# ()
# {}
demo(1,2,3,4,5)
# 1
# (2,3,4,5)
# {}
demo(1,2,3,4,5, name="小明")
# 1
# (2,3,4,5)
# {"name“: "小明"}
demo(1, *mylist, **mydict) # 传入值的拆包