转载请注明 来源:http://www.eword.name/
Author:eword
Email:[email protected]
Python基础语法
一、输入和输出
input()
输入:
- input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
- input()在从键盘获取了数据以后,会存放到等号右边的变量中
- input()会把用户输入的任何值都作为字符串来对待
- 注意:在python2中还有一个raw_input()输入,但到python3中没有了
# 源码
str = input("请输入:");
print ("你输入的内容是: ", str)
# 结果
请输入内容:>? hello word
您输入的内容: hello word
Print()
输出:
- print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
# 源码
inline = "我后面不换行"
new_line = "我后面换行了"
separator = "=========我是分隔符========"
# 后面换行
print(new_line)
print(separator)
print()
# 后面不换行
print(inline, end=" ")
print(separator)
print()
one = "1、"
two = "2、"
tree = "3"
# 连续输出3个参数
print(one, two, tree)
# 结果
我后面换行了
=========我是分隔符========
我后面不换行 =========我是分隔符========
1、 2、 3
format()
的格式化函数
- 格式化字符串的函数
str.format()
,它增强了字符串格式化的功能。 - 基本语法是通过 {} 和 : 来代替以前的 % 。
# 源码
# 不设置指定位置,按默认顺序
print("不设置指定位置,按默认顺序======")
print("{} {}".format("hello", "world"))
print()
# 设置指定位置
print("设置指定位置1======")
print("{0} {1}".format("hello", "world"))
print()
# 设置指定位置
print("设置指定位置2======")
print("{1} {0} {1}".format("hello", "world"))
print()
# 指定参数名
print("指定参数名======")
print("姓名:{name}, 性别 {sex}".format(name="Eword", sex=" 男"))
print()
# 通过字典设置参数
print("通过字典设置参数======")
person = {"name": "Eword", "sex": " 男"}
print("姓名:{name}, 性别 {sex}".format(**person))
print()
# "0" 是必须的,通过列表索引设置参数
print("通过列表索引设置参数======")
_list = ['姓名', ' 男']
print("姓名:{0[0]}, 性别: {0[1]}".format(_list))
print()
# 数字格式化
print("数字格式化======")
print("{:.2f}".format(3.1415926))
# 结果
不设置指定位置,按默认顺序======
hello world
设置指定位置1======
hello world
设置指定位置2======
world hello world
指定参数名======
姓名:Eword, 性别 男
通过字典设置参数======
姓名:Eword, 性别 男
通过列表索引设置参数======
姓名:姓名, 性别: 男
数字格式化======
3.14
format()
数字格式化参照
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
11 | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) |
1011 11 13 b 0xb 0XB |
进制 |
二、注释
Python中的注释有单行注释和多行注释:
-
python中单行注释采用 # 开头。
-
python 中多行注释使用三个单引号(''')或三个双引号(""")。
# 源码
# 单行注释演示
str = "Hello, Python!" # 单行注释可以放到表达式后面
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
print(str) # 单行注释可以放到行末
# 结果
Hello, Python!
三、标识符
- 在
Python
里,标识符: 由字母、数字、下划线组成,但不能以数字开头
。 - Python 中的标识符是区分大小写的。
- 特殊标识符:
- 以下划线开头的标识符是有特殊意义的。以单下划线开头
_foo
的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *
而导入; - 以双下划线开头的
__foo
代表类的私有成员;以双下划线开头和结尾的__foo__
代表 Python 里特殊方法专用的标识,如__init__()
代表类的构造函数。
- 以下划线开头的标识符是有特殊意义的。以单下划线开头
- python保留字: 保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
# 查询关键字 Python 3.9
import keyword
keyword.kwlist
# python 3.9 的关键字
['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']
四、变量
- Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
- 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
- 等号(=)用来给变量赋值。
- 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如:
- 实例(Python 3.9+)
# 源码
# 整型变量
count = 100
# 浮点型变量
miles = 1000.0
# 字符串
name = "demo"
# Python允许你使用以下形式同时为多个变量赋值。
a = b = c = 1 # 创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
x, y, z = 7, 9, "我是8呀" # 两个整型对象 7 和 9 的分配给变量 x 和 y,字符串对象 "我是8呀" 分配给变量 z。
print("counter =", count)
print("miles =", miles)
print("name =", name)
print("a =", a)
print("b =", b)
print("c =", c)
print("x =", x)
print("y =", y)
print("z =", z)
# 结果
counter = 100
miles = 1000.0
name = demo
a = 1
b = 1
c = 1
x = 7
y = 9
z = 我是8呀
五、行与缩进
- python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。
- 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:
# 源码
# 正确示例
# 乘法口诀表
for i in range(1, 10):
for j in range(1, i + 1):
print(str(j) + '*' + str(i) + "=" + str(i * j), end=" ")
print()
# 错误示例
# 缩进不一致,会导致运行错误
for i in range(1, 10):
for j in range(1, i + 1):
print(str(j) + '*' + str(i) + "=" + str(i * j), end=" ")
print() # 此行缩进数的空格数不一致,会导致运行错误:
# 报错内容:IndentationError: unindent does not match any outer indentation level
多行语句
- Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠
\
来实现多行语句,例如:
# 源码
# 乘法口诀表
for i \
in range(1, 10):
for j in range(1, i + 1):
print(str(j) + '*' + str(i) + "=" + str(i * j), end=" ")
print()
- 在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(),例如:
# 源码
# 乘法口诀表
for i in range(1, 10):
for j in range(1, i + 1):
print(str(j) +
'*' +
str(i) +
"=" +
str(i * j), end=" ")
print()
空行
- 函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
- 空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
- 记住:空行也是程序代码的一部分。