所有python示例都是基于python3
python的运行
终端启动python控制台
在终端输入 python , 回车,进入python 控制台。然后可以输入单行python语句,回车后执行。
终端运行python文件
把需要执行的python语句保存的python文件,然后启动运行。
使用pycharm工具调试和运行
在终端中python控制台中执行语句,有些情况下调试起来会非常方便。
在终端中运行python文件,我们日常工作中经常会使用这种方式启动脚本。
使用pycharm工具编辑、调试和运行会更方便。建议编写脚本调试脚本,通常在pycharm工具中进行即可。另外两种运行脚本的方法,也需要知道。
pycharm中,右键需要调试的文件,会弹出一个菜单。弹出菜单中有运行按钮可以启动运行。
数和表达式
>>> 123
123
>>> 123+123
246
>>> 467*578*245
66131870
说明: 上面的python语言表达式是书中约定的一种方式。在控制台中, >>> 符号后面的是输入的python语句,没有符号的行是回车后的运行结果。这种方式和控制台中实际的输出是一致的。
变量和语句
>>> my_name='george'
>>> print('hell', my_name)
hell george
my_name是一个变量,这里他保存的是一个字符串。可以在后面的语句中,直接使用变量来调用它保存的值。
获取用户输入函数
>>> input('what is your name?')
what is your name?george
'george'
函数
>>> def hello():
... my_name='george'
... print(my_name)
...
>>> def pass_func():
... pass
...
>>> def hello_para(name):
... print(name)
...
>>> hello()
george
>>> pass_func()
>>> hello_para('python')
python
def 关键字定义函数
函数名后需要有(),且:号表示名称定义结束
函数主体使用缩进表示,缩进没有了表示函数内容结束
函数可以定义参数,如上面的hello_para()。调用时需要把参数传入。
函数的关键字参数
>>> def my_home(city, province='zhejiang'):
... print('I come from {} {}'.format(city, province))
>>> my_home('hangzhou')
I come from hangzhou zhejiang
>>> my_home('chengdu', 'sichuan')
I come from chengdu sichuan
>>> my_home('chengdu', province='sichuan')
I come from chengdu sichuan
函数参数有位置参数和关键字参数。上面的my_home()参数city是位置参数,province为关键字参数。
位置参数,一个函数可以定义多个位置参数。每次调用时都需要一一对应传入参数。如果没有一一对应,运行时会报错。比如定义了3个参数,调用时传入了4个参数或者2个参数,会报错。
关键字参数,会定义初始值,调用时,可以传值,也可以不传值。不传值,则使用默认值。
关键字参数,调用时,可以写上关键字,也可以不写上。如上面的my_hone()调用,my_home(‘chengdu’, ‘sichuan’)和my_home(‘chengdu’, province=‘sichuan’)都是可以的,这里的运行结果也是一样的。
模块
python有很多很多的公共模块。我们也可以自己写模块。
>>> time.sleep(1)
Traceback (most recent call last):
File "", line 1, in
NameError: name 'time' is not defined
上面代码中 time 模块是我们常用的,time.sleep(1) 是要等待1秒钟。但是这里运行后会报错‘time is not defined’,也就是没有找到time的定义。
这里报错的原因是我们没有导入这个库。使用 import 关键字导入即可。
>>> import time
>>> time.sleep(1)
上面的代码执行成功,等待1秒钟
我们要使用自己写的模块,也需要导入。比如我们在 a.py 中使用 b.py中的函数,就需要 import 后才能使用。
注释
# 获取用户的名字:
user_name = input("What is your name?")
使用 # 号注释一行。如上面的代码。
字符串及各种操作
字符串
python3对字符串和字节进行了显示的定义。字节是给电脑用的,字符串是我们说的大白话。
字符串的编码方式有很多,我们一般尽量使用 utf-8 即可。
我们说的字符串,就是str类型。
>>> 'hello world'
'hello world'
>>> "hello world"
'hello world'
>>> 'what\'s your name'
"what's your name"
>>> "what's your name"
"what's your name"
>>> 'c:\\program\\zip\\7z.exe'
'c:\\program\\zip\\7z.exe'
>>> r'c:\program\zip\7z.exe'
'c:\\program\\zip\\7z.exe'
以上这些定义字符串的方式都是可以的。使用单引号还是双引号定义字符串是相同的结果。
如果字符串中有特殊字符,特殊字符前需要加 \ 符号给特殊字符转义
如果字符的内容中有单引号,使用双引号,可以不用转义符号
如果字符串内容本身有\符号,也需要给\符号加上转义符变成\。为了方便,可以给字符串加上r,这样就不用转义了。
>>> """
... line 1
... line 2
... line n
... """
'\nline 1\nline 2\nline n\n'
>>> '''
... line 1
... line 2
... line n
... '''
'\nline 1\nline 2\nline n\n'
以上为长字符串。连续三个单引号或者连续三个双引号表示。长字符串中可以写比较复杂的内容。比如换行。
字节
>>> b'abc'
b'abc'
>>> b'abc' == 'abc'
False
使用 b 定义字节。字节和字符串是不相等的。如果遇到字节,建议转换成字符串后再进行各种传递和操作。字符串和字节的互相转换,这里就不做说明了,有兴趣的朋友可以自己查资料学习。
字符串的拼接和字符串格式化
>>> 'str1'+' str2'
'str1 str2'
上面为字符串拼接,直接用+号连接起来即可。
>>> '{} {}'.format('str1', 'str2')
'str1 str2'
>>> '%s %s'%('str1', 'str2')
'str1 str2'
上面为字符串格式化的最简单使用。有两种风格。 %号的风格是python2里面的,format是python3之后才有的。这两种方式在python3中都能用,而且都使用得很普遍。
字符串的格式化可以有很多参数,使得字符串显示出来排版更漂亮,想了解的朋友可以自行查阅资料学习。