总结整理:Python基础语法
中文编码:#!/usr/bin/python# coding=utf-8print( "你好,世界" )默认情况下,Python3源码文件以UTF-8编码,可以正常解析中文。
编码:
默认情况下,Python3源码文件以UTF-8编码,可以正常解析中文,但也可以为源码文件指定不同的编码。
# -*- coding: UTF-8 -*-
# -*- coding: cp-1252 -*-
标识符:
标识符由字母、数字、下划线(_)组成,但不能以数字开头;区分大小写。
在Python3中允许非ASCII标识符。
关键字:
>>> 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']
>>>
注释:
# 第一个注释
'''
第二个注释
'''
"""
第三个注释
"""
print('hello world')
行和缩进:
Python用缩进来写代码块,缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量。
多行语句:
Python一般以新行作为语句的结束符,但是可以使用反斜杠(\)将一行的语句分为多行显示。
total = item_one + \
item_two + \
item_three
在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\)。
数字(Number)类型:
Python中数字有四种类型:整数(int)、布尔型(bool)、浮点数(float)和复数(complex)。
字符串(String)类型:
Python可以使用引号(’)、双引号(")、三引号(’’'或""")来表示字符串,引号的开始与结束必须是相同类型的。其中三引号可以指定一个多行字符串。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
使用r可以让反斜杠(\)不发生转义。
print('\n') # 输出空行
print(r'\n') # 输出 \n
字符串可以用(+)运算符连接在一起,用(*)运算符重复。
print('python' + '你好') # 输出 python你好
print('python' * 2) # 输出 pythonpython
字符串有两种索引方式:正索引从左往右以0开始,负索引从右往左以-1开始。
字符串截取:字符串[开始索引:结束索引:步长]
开始索引:从指定位置开始截取
结束索引:从指定位置结束截取,但不包含该位置的字符
步长:不指定时步长为1
str='Runoob'
print(str) # 输出 Runoob
print(str[0:-1]) # 输出 Runoo
print(str[0]) # 输出 R
print(str[2:5]) # 输出 noo
print(str[2:]) # 输出 noob
print(str[1:5:2]) # 输出 uo
列表/元组类型:
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
# 访问列表
print(list[0])
print(list[1:-2])
# 更新列表
list[2] = 'brown'
print(list)
# 删除列表元素
del list[2]
print(list)
tup1 = (50,) # 元组中只包含一个元素时,需要在元素后面添加逗号
tup2 = ('abc', 'xyz')
# 连接元组
tup3 = tup1 + tup2
print(tup3)
# 元组的元素不能修改或删除
# tup1[0] = 100
列表/元组函数 | 描述 |
---|---|
len(list)/len(tuple) | 列表/元组元素个数 |
max(list)/max(tuple)、min(list)/min(tuple) | 返回列表/元组元素最大值或最小值 |
list(seq)/tuple(iterable) | 将元组转换为列表/将可迭代系列转换为元组 |
字典类型:
dict = {'name': '张三', 'age': 10}
# 访问字典里的值
print(dict['name'])
print(dict)
# 修改字典
dict['age'] = 11
print(dict)
# 添加信息
dict['gender'] = 'male'
print(dict)
# 删除字典元素
del dict['gender']
print(dict)
如果同一个键被赋值两次,后一个值会被记住。
键必须不可变,所以可以用数字,字符串或元组充当,不能用列表。
空行:
空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
输入:
# 按下enter键退出,其他任意键显示
str = input("请输入:\n");
输出:
# 换行输出
print('a')
print('b')
# 不换行输出
print('a', end=" ")
print('b', end=" ")
导入模块:
# 将整个模块(somemodule)导入
import somemodule
# 从某个模块中导入某个函数
from somemodule import somefunction
# 从某个模块中导入多个函数
from somemodule import firstfunc, secondfunc, thirdfunc
# 将某个模块中的全部函数导入
from somemodule import *
运算符:
算术运算符 | 描述 | 实例:a = 10,b = 20 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a ** b 为10的20次方 |
// | 取整除 - 返回商的整数部分(向下取整) | 9 // 2 = 4,-9 // 2 = -5 |
比较运算符 | 描述 | 实例:a = 10,b = 20 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true |
> | 大于 - 返回x是否大于y | (a > b) 返回 False |
< | 小于 - 返回x是否小于y | (a < b) 返回 true |
>= | 大于等于 - 返回x是否大于等于y | (a >= b) 返回 False |
<= | 小于等于 - 返回x是否小于等于y | (a <= b) 返回 true |
位运算符 | 描述 | 实例:a = 0011 1100,b = 0000 1101 |
---|---|---|
& | 按位与运算符:如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 | (a | b) 输出结果 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反 | (~a ) 输出结果 1100 0011 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,高位丢弃,低位补0 | a << 2 输出结果 1111 0000 |
>> | 右移动运算符:运算数的各二进位全部右移若干位 | a >> 2 输出结果 0000 1111 |
逻辑运算符 | 表达式 | 描述 | 实例:a = 10,b = 20 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False;否则它返回 y 的计算值 | (a and b) 返回 20 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值;否则它返回 y 的计算值 | (a or b) 返回 10 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False;如果 x 为 False,它返回 True | not(a and b) 返回 False |
成员运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | x 在 y 序列中,如果 x 在 y 序列中返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | x 不在 y 序列中,如果 x 不在 y 序列中返回 True |
身份运算符 | 描述 | 实例:id()函数用于获取对象内存地址 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y,类似 id(x) == id(y) |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y,类似 id(x) != id(y) |
条件语句:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
循环语句:
while condition:
statements
# 在条件语句为 false 时执行 else 的语句块
while condition:
statements
else:
additional_statements
# 遍历任何序列的项目,如一个列表或者一个字符串
for variable in sequence:
statements
else:
statements
range()函数:
for i in range(5):
print(i) # 生成数列:0 1 2 3 4
for i in range(5, 9):
print(i) # 生成数列:5 6 7 8
for i in range(-10, -100, -30):
print(i) # 生成数列:-10 -40 -70
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
for i in range(len(a)):
print(i, a[i]) # 遍历一个序列的索引
迭代器:
list = [1, 2, 3, 4]
it = iter(list) # 创建迭代器对象 it
print(next(it)) # 输出迭代器的下一个元素
生成器:
def fibonacci(n): # 生成器函数:斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a # 使用了 yield 的函数被称为生成器
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
函数:
# 比较两个数,并返回较大的数
def max(a, b):
if a > b:
return a
else:
return b
函数的参数传递:
不可变(immutable)类型:类似C++的值传递,如整数、字符串、元组。
可变(mutable)类型:类似C++的引用传递,如列表、字典。
# 加了星号(*)的参数会以元组的形式导入
def printinfo(arg1, *vartuple):
print(arg1)
print(vartuple)
printinfo(70, 60, 50) # arg1 = 70,vartuple = (60, 50)
# 加了两个星号(**)的参数会以字典的形式导入
def printinfo(arg1, **vardict):
print(arg1)
print(vardict)
printinfo(1, a=2, b=3) # arg1 = 1,vardict = {'a': 2, 'b': 3}
# 强制位置参数:a 必须使用指定位置参数,b 可以是位置形参或关键字形参,c 必须使用关键字形参
def f(a, /, b, *, c):
print(a, b, c)
# print(f(1,2,3)) # 报错
# print(f(a=1,2,3)) # 报错
print(f(1,2,c=3)) # 正常
更多推荐
所有评论(0)