1 输入和输出

1.1 print()

打印括号里的内容

  • 无引号,打印数字,计算机阅读并理解括号里的内容,打印结果(数字间若有计算符号,会输出计算结果);print(1+1)
  • 单/双引号,打印字符串,计算机不管引号中的内容(原样输出);
    print("Let's go") print('Let\'s go')
  • 三引号,打印段落(原样输出);
    同html的<pre>多行文本</pre>标签

单/双引号里适当使用 \n 换行,可实现与三引号相同效果;

转义字符列表
| 转义字符 | 意义 |
|

1.2 input()

收集从键盘输入的信息:

  name = input('请输入你的 ID: ')
  print(str(input('pls input\n')))

input()函数的输入值永远会被【强制性】地转换为【字符串】类型。(Python3固定规则)

2 变量和赋值

  name='xxx'
  print(name)
  xxx
  • = 是赋值符号,将右边的内容赋值给左边的变量;
  • == 是比较运算符号,表示两边相等;

2.1 变量的命名规范

  1. 只能是一个词;
  2. 只能包含字母,数字和下划线;
  3. 不能以数字开头;
  4. 尽量描述包含的数据内容;
  5. 不要使用Python函数名或关键字;
  • number = 34
  • name = 'forchange'
  • list_class = ['基础语法课程','爬虫分析初阶','爬虫分析进阶','自动化办公']
    以上number,name,list_class都是是变量名

2.2 查看python的关键字

 import keyword
 keyword.kwlist
  ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

False, None, True, and, or, not, def, del, import,
if, elif, else, for, while, break, continue, return, pass, try, except,
as, in, is, from, with,
assert, async, await, class, finally, global, lambda, nonlocal, raise, yield

判断是否为关键字:

  keyword.iskeyword('false')
  False
  keyword.iskeyword('False')
  True

3 条件判断

  • if [条件0] : (缩进的内容) \ 单向判断
  • if [条件0] : (缩进的内容) else: (缩进的内容) \ 双向判断
  • if [条件0] : (缩进的内容) elif [条件1] : (缩进的内容) else: (缩进的内容) \ 多向判断
    对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。
    【注:缩进是四个空格或一个Tab键】
    IndentationError: expected an indented block(缩进错误:期望一个缩进块)

if嵌套,就是在上面任何一个(缩进的内容)中添加一个if结构

4 常见的数据类型

  • srt string字符串, 用引号括起来的文本;
  • int integer整数, 不带小数点的数字;
  • float 浮点数, 带小数点的数字,运算结果存在误差;
  • bool 布尔值, True or False;
  • dice dictionary字典, 使用键值对(key-value)作为存储方式. 标识是大括号{};
  • list 列表, 有序的集合,可以随时添加或删除其中的元素. 标识是中括号[];
  • tuple 元组, 类似列表的数据类型,但是不能被修改。

4.1 浮点数的运算误差

print(0.55+0.3)
0.8500000000000001

为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.55和0.3转化成二进制数. [注:二进制数由0和1表示,逢二进一],如下:

进制转换:

0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
0.3 (十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

5 数据的操作

5.1 字符串的拼接

  • '+' print(hero+action+organization+identity+ID) //字符串拼接, 不是字符串需要转换为字符串
  • '%' print ('print%dnam%s'%(number,name)) ///不同类型的拼接

5.2 四则运算

  • /
  • % 取模-返回除法的余数;5%2,返回1
  • // 取整除-返回商的整数部分;5//2, 返回2
  • ** 幂-返回x的y次幂;2**3, 2的3次方

与平时运算优先级一样:从左到右顺着来,括号里的优先算,乘除排在加减前。

5.3 数据转换

  • str() 强制转换为字符串
  • int() 将整数形式的字符串转换为整数,(文本和浮点数不能转换为整数)
    • print(int(3.3)) 浮点数直接抹零取整数
  • float() 将整数和数字形式的字符串转换为浮点数,(文字类字符串无法转转)
  • list() 将数据转换为列表类型
>>> name = 'python'
>>> print(list(name))
['p', 'y', 't', 'h', 'o', 'n']
  • len() 返回数据长度
>>> namelist=list(name)
>>> list2= ['py','th','on']
>>> len(name)
6
>>> len(namelist)
6
>>> len(list2)
3

5.4 type(),查询数据类型

  print(type(who))
  <class 'str'>

5.5 list列表语法

  • 偏移量: 列表元素的位置编号, 从0开始
  • 对列表元素的处理: 增, 删, 改, 查(提取)
    • 提取: list[0] 取出位置0的元素; list[a:b] 取出位置a到b, 但不包括b的所有元素(a<=X小于b); list[:]全部;
    • 修改: list[0]='tree0'
    • 增加: list.append('tree3') 添加到列表末尾,注意append()函数后面是小括号,不是方括号
    • 删除: del list[0]
  • 对列表的处理: 增, 删, 改, 查(提取)
    • 提取: list[1:2] 列表的切片(子列表, 列表片段),一次提取多个元素
    • 删除: del list[1:2] 删除切片(子列表, 列表片段),一次删除多个元素
    • 增加(合并): list = list1 + list2 列表的合并
    • 修改(赋值): list = ['0','1','2']; list[:] = ['xx'] 对列表赋值
  • 嵌套列表的提取
>>> list = [['0','0a'],['1','1b'],['2','2c']]
>>> print(list[0][1])
  0a

5.6 dict字典语法

group={'k1':'v1','k2':'v2','k3':'k3'}

  • 增加: group['k4']=v4 ;
  • 删除: del group['k4'] ;
  • 修改: group['k1']=v11 ;
  • 提取: group['k1'] 取出v1 ; 列表使用偏移量来提取,字典使用键来提取
  • dict.deys() 提取字典中所有键
    • group.keys() 元组的形式
    • list(group.keys()) 将元组转换为列表
  • dict.valus() 提取字典中所有的值
    • group.values()
  • dict.items() 提取字典中所有键值对
    • group.items()

5.7 bool()

检查数值的真假

>>> print(bool(1))
  True

值本身作为条件

Type 假值 其他都是真值
bool False True
number 0 非0数值(int, fl)
srt '’ 非空字符串
list [] 非空列表
dict {} 非空字典
None

比较运算符产生布尔值

运算符 释义
'== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

运算符之间不用空格,不可以写成= =、> =

成员运算符产生布尔值

运算符 释义
in 属于
not in 不属于

逻辑运算符产生布尔值

运算符 释义
and
or
not

6 循环

6.1 for循环

for 条件 : (缩进的内容)

  • 遍历字符串
# py01.py文件内容:
for i in 'code':
   print(i)
# bash下执行:
> python py01.py
c
o
d
e
  • 遍历列表
# py01.py文件内容:
for i in ['code','py']:
    print(i)
# bash下执行:
> python py01.py
code
py
  • 遍历字典的键
# py01.py文件内容:
list = {1:'a',2:'b',3:'c'}
for i in list:
    print(i)
# bash下执行:
> python py01.py
1
2
3
  • 遍历字典的值
# py01.py文件内容:
list = {1:'a',2:'b',3:'c'}
for i in list.values():
    print(i)
# bash下执行:
> python py01.py
a
b
c
  • 遍历字典的键值对
# py01.py文件内容:
list = {1:'a',2:'b',3:'c'}
for k, v in list.items():
    print(k)
    print(v)
# bash下执行:
> python py01.py
1
a
2
b
3
c

range()函数

range()有最基本的三种用法:range(a), range(a,b),range(a,b,c)。

  • a:计数从a开始。不填时,从0开始;b:计数到b结束,但不包括b;c:计数的间隔,不填时默认为1。
range(5)
# 计数依次为0,1,2,3,4
range(1,5)
# 计数依次为1,2,3,4
range(2,8,2)
# 计数依次为2,4,6

for…in range()

处理指定次数的循环

for i in range(3):
    print('第%d行' %i)

6.2 while循环

只要条件为真,便会一直循环

count = 3
while count > 1:
    print('happy coding')
    count = count -1
happy coding
happy coding

while循环和for循环的区别:

  • for擅长处理固定次,自动遍历各序列
  • while处理不定次数的循环,条件为False便停止

6.3 循环进阶

  • break, 结束循环
  • continue, 跳过当前循环的剩余语句, 直接开始下一轮循环
  • else, 无论是否进入循环, 最后都会执行esle语句, 除非执行break语句跳出循环
while True:
    print('happy coding')
    break

循环嵌套

>for i in ['qw','ert']:    #首先遍历列表元素
...    for t in i:         #然后遍历元素(字符串)
...        print(t)

6.4 补充: Python风格规范

Docs » Python 风格指南 - 内容目录 » Python风格规范

https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/