总结整理:Python基础语法

编码:

默认情况下,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除以yb / 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
<<左移动运算符:运算数的各二进位全部左移若干位,高位丢弃,低位补0a << 2 输出结果 1111 0000
>>右移动运算符:运算数的各二进位全部右移若干位a >> 2 输出结果 0000 1111
逻辑运算符表达式描述实例:a = 10,b = 20
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False;否则它返回 y 的计算值(a and b) 返回 20
orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值;否则它返回 y 的计算值(a or b) 返回 10
notnot x布尔"非" - 如果 x 为 True,返回 False;如果 x 为 False,它返回 Truenot(a and b) 返回 False
成员运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 Falsex 在 y 序列中,如果 x 在 y 序列中返回 True
not in如果在指定的序列中没有找到值返回 True,否则返回 Falsex 不在 y 序列中,如果 x 不在 y 序列中返回 True
身份运算符描述实例:id()函数用于获取对象内存地址
isis 是判断两个标识符是不是引用自一个对象x is y,类似 id(x) == id(y)
is notis 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))		# 正常
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值