1. 基础语法
1.注意编码
在不同的操作系统中、不同的开发工具中,有不同的默认编码类型,常见的有:GBK、GB2313、UTF-8、UNICODE、ISO-8859-1

讯享网
2.标识符规范
- 第一个字符可以是:字母、’_’、中文
- 非第一位字符可以是:字母、数字、’_’、中文
- 大小写敏感
_姓名 = '张三' name01 = 'zhangsan' print(_姓名) print(name01)
讯享网
3.保留关键字
讯享网>>> import keyword >>> keyword.kwlist ['False', 'None', 'True', '__peg_parser__', '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']
4.注释
单行注释以 # 开头,多行注释采用三对单引号(’’’)或者三对双引号(""")将注释括起来
# 这是一行注释 ''' 这是多行注释 这是多行注释 这是多行注释 '''
5.缩进
通过缩进表示代码块等级,常用Tab
讯享网name = 'zhangsan' # 打印字符 def print_char(name): for char in name: print(char) print_char(name)
6.基本数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
7.输入输出
name = input("请输入姓名:") print('用户输入:', name) # 保存内容到文件 open('a.log',mode='w').write('asd')
8.导包
讯享网import os from os import path # from xxx import * import time # 创建目录 if not path.exists('testDir'): os.mkdir('testDir') # 格式化时间 format_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) print(format_time)
2.解释器
hello.py
print ("Hello, Python!");
执行
讯享网python hello.py
3. 运算符
python中没有三元表达式,可以通过 if(a>0) a else 0实现
3.1 算术运算法
和大多数类型的编程语言一样,python中的也有±*/,但也有不一样的
- / 当两个数字类型相除时,如果参数余数,相除会产生小数
- // 向下整除
- 字符串不可以和number类型相加,需要先转换为字符串
- 在字符串中,使用较为灵活
假设变量 a 为 10,变量 b 为 21:
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 - 两个对象相加 | a + b 输出结果 31 |
| - | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
| * | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
| / | 除 - x 除以 y | b / a 输出结果 2.1 |
| % | 取模 - 返回除法的余数 | b % a 输出结果 1 |
| 幂 - 返回 x 的 y 次幂 | a b 为 10 的 21 次方 | |
| // | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
3.2 比较运算符
假设变量 a 为 10,变量 b 为 20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 等于 – 比较对象是否相等 | (a == b) 返回 False。 |
| != | 不等于 – 比较两个对象是否不相等 | (a != b) 返回 True. |
| > | 大于 – 返回 x 是否大于 y | (a > b) 返回 False。 |
| < | 小于 – 返回 x 是否小于 y。所有比较运算符返回 1 表示真,返回 0 表示假。这分别与特殊的变量 True 和 False 等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
| >= | 大于等于 – 返回 x 是否大于等于 y。 | (a >= b) 返回 False。 |
| <= | 小于等于 – 返回 x 是否小于等于 y。 | (a <= b) 返回 True。 |
3.3 赋值运算符
假设变量 a 为 10,变量 b 为 20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
| *= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
| /= | 除法赋值运算符 | c /= a 等效于 c = c / a |
| %= | 取模赋值运算符 | c %= a 等效于 c = c % a |
| = | 幂赋值运算符 | c = a 等效于 c = c a |
| //= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
3.4 位运算符
假设变量 a 为 60,b 为 13。
| 运算符 | 描述 | 实例 |
|---|---|---|
| & | 按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| 按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为 1。 | ||
| ^ | 按位异或运算符:当两对应的二进位相异时,结果为 1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
| ~ | 按位取反运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
| << | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补 0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
| >> | 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
3.5 逻辑运算符
假设变量 a 为 10, b 为 20:

| 运算符 | 逻辑表达式 | 描述 | 实例 |
|---|---|---|---|
| and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
| or | x or y | 布尔"或" - 如果 x 是 True,它返回 x的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
| not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
3.6 成员运算符
用户判断成员是否包含还是未包含在括字符串、列表或元组。
| 运算符 | 描述 | 实例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
| not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
3.7 身份运算符
身份运算符用于比较两个对象的存储单元
| 运算符 | 描述 | 实例 |
|---|---|---|
| is | is 是判断两个标识符是不是引用自一个对象 | x is y, 如果 id(x) 等于 id(y) , is 返回结果 True |
| is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 True |
4. 数字
Python 数字类型用于数值的储存。数值类型是不允许改变的,如果改变数字数据类型的值,将重新分配内存空间。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- bool (布尔), 如 True。
- float (浮点数), 如 1.23、3E-2
- complex (复数), 如 1 + 2j、 1.1 + 2.2j
count = 100 result = True change = 12.34 c = complex(2, 3)
数字类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
- int(x) 将x转换为一个整数。
- float(x) 将x转换到一个浮点数。
- complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
- complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
数学函数
| 函数 | 返回值 ( 描述 ) |
|---|---|
| abs(x) | 返回数字的绝对值,如abs(-10) 返回 10 |
| ceil(x) | 返回数字的上入整数,如math.ceil(4.1) 返回 5 |
| cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。 |
| exp(x) | 返回e的x次幂(ex),如math.exp(1) 返回2.9045 |
| fabs(x) | 返回数字的绝对值,如math.fabs(-10) 返回10.0 |
| floor(x) | 返回数字的下舍整数,如math.floor(4.9)返回 4 |
| log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
| log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
| max(x1, x2,…) | 返回给定参数的最大值,参数可以为序列。 |
| min(x1, x2,…) | 返回给定参数的最小值,参数可以为序列。 |
| modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 |
| pow(x, y) | xy 运算后的值。 |
| round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 |
| 其实准确的说是保留值将保留到离上一位更近的一端。 | |
| sqrt(x) | 返回数字x的平方根。 |
5. 字符串
- 单引号和双引号使用完全相同。
- 使用三对引号(’’'或""")可以囊括一个多行字符串。
- 转义符 ‘’
- 自然字符串, 通过在字符串前加 r 或 R。 如 r"this is a line with \n" 则\n会显示,并不是换行。
- Python 允许处理 unicode 字符串,加前缀 u 或 U, 如 u"this is an unicode string"。
- 字符串是不可变的。
- 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
- 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
- Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- Python中的字符串不能改变。
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
- 字符串的截取的语法格式如下:变量 [头下标: 尾下标: 步长]
讯享网str='' print(str) # 输出字符串 print(str[0:-1]) # 输出第一个到倒数第二个的所有字符 print(str[0]) # 输出字符串第一个字符 print(str[2:5]) # 输出从第三个开始到第五个的字符 print(str[2:]) # 输出从第三个开始后的所有字符 print(str[1:5:2]) # 输出从第二个开始到第五个且每隔两个的字符 print(str * 2) # 输出字符串两次 print(str + '你好') # 连接字符串
字符串格式化
常用的有:%s、%d、%f
content = '姓名:%s,年龄:%d' % ('张三', 16) print(content)
字符串内建函数
find、endwith、startwith、index、join、replace、split、lower、upper
6. 列表List
- 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
- 列表用 [ ] 标识,是 python 最通用的复合数据类型。
- 列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾,遵循左闭右开。
- 加号 + 是列表连接运算符,星号 * 是重复操作。
讯享网content = [1, 3, 5.0, 'zhangsan'] nums = [1, 3, 5, 7, 9] nums2 = [2, 4, 6, 8, 10] nums.remove(1) print(nums[0]) print(nums[0:2]) print(nums[-1]) print(nums[-3:]) nums.append(11) # nums = nums*3 nums += nums2 print(nums)

7. 元组
元组与列表类似,不同之处在于元组的元素不能修改,但可以相加组合
tup1 = (1, 3, 5, 7, 9) tup2 = (2, 4, 6, 8, 10) print(tup1[0]) print(tup1[1:3]) print(tup1[-3:]) tup1 += tup2 print(tup1)
内置函数
len、min、max、tuple
8. 字典
在python中的字典对应是java中的map集合,可以进行增删改查,格式化后就是我们常用的json数据格式
讯享网import json headers = {
"Host": "www.baidu.com", "Connection": "keep-alive", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9", } print(headers["Accept-Language"]) headers.update({
"Accept-Language": "666"}) headers["Accept-Language"]="777" print("Accept-Language" in headers) headers.pop("Accept-Language") print("Accept-Language" in headers) print(json.dumps(headers)) print(type(headers))
9. 条件控制语句和循环
通过条件控制语句,进行代码有选择性的执行,常见if、while、
a = 6 b = 10 if a > b: print('a>b') else: print('a<=b') while a < b: a += 1 else: print('end')
10. 迭代器和生成器
讯享网nums = [1, 2, 3, 4] it = iter(nums) print(next(it)) for item in it: print(item)
nums = [1, 2, 3, 4] def get_nums(): for item in nums: yield 'times' + str(item) print('end') for i in get_nums(): print(i)
11. 函数、方法、类
与类和实例无绑定关系的function都属于函数(function); 与类和实例有绑定关系的function都属于方法(method)
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
‘_’下划线开头变量表示内部成员,类似于java中的private,不能直接使用
讯享网count = 0 class User: """ 用户类 """ name = '' _age = 0 count = 1 def set_name(self, name): self.name = name def set_age(self, age): self._age = age def get_format_name(self): count = 2 # 闭包 def print_something(): global count count = 3 print('print_something') print_something() return '姓名:%s' % self.name def get_age(self): return self._age user = User() user.set_name('张三') print(user.get_format_name()) print('姓名:%s' % user.name) # 错误使用 # print('年龄:%s' % user._age) print(count)
使用外部作用域需要使用 global 关键字
def 函数名(参数列表,*): 函数体 # return "xxx"
讯享网nums = [1, 2, 3, 4] def print_nums(nums, debug=False): if debug: print('debug:', nums) else: print('release:', nums) return debug result = print_nums(nums, debug=True) print(result)
12. 模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是 .py。模块可以被别的程序引入,以使用该模块中的函数等功能。常用的三方库也是模块。所谓的导包就是导入模块
import sys import os from xxx import xxx
13. File文件
| 方法及描述 |
|---|
| file.close() |
| 关闭文件。关闭后文件不能再进行读写操作。 |
| file.flush() |
| 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 |
| file.fileno() |
| 返回一个整型的文件描述符 (file descriptor FD 整型), 可以用在如 os 模块的 read 方法等一些底层操作上。 |
| file.isatty() |
| 如果文件连接到一个终端设备返回 True,否则返回 False。 |
| file.next() |
| 返回文件下一行。 |
| file.read([size]) |
| 从文件读取指定的字节数,如果未给定或为负则读取所有。 |
| file.readline([size]) |
| 读取整行,包括 “\n” 字符。 |
| file.readlines([sizehint]) |
| 读取所有行并返回列表,若给定 sizeint>0,返回总和大约为 sizeint 字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。 |
| file.seek(offset[, whence]) |
| 设置文件当前位置 |
| file.tell() |
| 返回文件当前位置。 |
| file.truncate([size]) |
| 截取文件,截取的字节通过 size 指定,默认为当前文件位置。 |
| file.write(str) |
| 将字符串写入文件,返回的是写入的字符长度。 |
| file.writelines(sequence) |
| 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。 |
14. 标准库和常用的类库
os、sys、shutil、re、threading、datetime、time、random、math、…
requests、urllib、numpy、pandas、matplotlib、beautifulsoup、tkinter、json、django、flask、selenium、xlwt、xlrd
更多
15. 异常处理
讯享网times = 0 while True: try: x = int(input("Please enter a number: ")) break # except Exception as err: except ValueError as err: print("Oops! That was no valid number. Try again ") print(err) finally: times += 1 print("End times:%d" % times)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/47041.html