Python 是一门流行的编程语言。它由 Guido van Rossum 创建,于 1991 年发布。
它用于:
缩进指的是代码行开头的空格。
在其他编程语言中,代码缩进仅出于可读性的考虑,而 Python 中的缩进非常重要。
Python 使用缩进来指示代码块。
for i in range(4):
print(i)
1.如果省略缩进,Python 会出错
2.空格数取决于程序员,但至少需要一个
3.您必须在同一代码块中使用相同数量的空格,否则 Python 会出错
在 Python 中,变量是在为其赋值时创建的
y=1
x=1.0
s=str()
a=[]
t={}
Python 没有声明变量的命令。
Python 拥有对文档内代码进行注释的功能。
注释以 # 开头,Python 将其余部分作为注释呈现
#this is a python
'''
one
two
three
'''
print("this is a python")
注释可用于解释 Python 代码。
注释可用于提高代码的可读性。
在测试代码时,可以使用注释来阻止执行。
注释以 # 开头,Python 将忽略它们
#this is a python
print('this is a python')
注释可以放在一行的末尾,Python 将忽略该行的其余部分
print("this is a python")#打印this is a python
注释不必是解释代码的文本,它也可以用来阻止 Python 执行代码
#print("this is a python")
print("there are pythons")
Python 实际上没有多行注释的语法。
要添加多行注释,您可以为每行插入一个 #
# one
#two
#three
print("this is one")
或者,以不完全符合预期的方式,您可以使用多行字符串。
由于 Python 将忽略未分配给变量的字符串文字,因此您可以在代码中添加多行字符串(三引号),并在其中添加注释
'''
one
two
three
'''
print("this is a python")
只要字符串未分配给变量,Python 就会读取代码,然后忽略它,这样您就已经完成了多行注释
变量是存放数据值的容器。
与其他编程语言不同,Python 没有声明变量的命令。
首次为其赋值时,才会创建变量。
x=10
y='bin'
print(x)
print(y)
变量不需要使用任何特定类型声明,甚至可以在设置后更改其类型
x=10#x为int
x="python"#想为字符型
print(x)
字符串变量可以使用单引号或双引号进行声明
x='python'
y="python"
print(x)
print(y)
变量可以使用短名称(如 x 和 y)或更具描述性的名称(age、carname、total_volume)。
Python 变量命名规则:
请记住,变量名称区分大小写
Python 允许您在一行中为多个变量赋值
x,y,z=1,2,3
print(x)
print(y)
print(z)
您可以在一行中为多个变量分配相同的值
x=y=z=1
print(x)
print(y)
print(z)
Python 的 print 语句通常用于输出变量。
如需结合文本和变量,Python 使用 + 字符
x="one"
print("this is "+x)
您还可以使用 + 字符将变量与另一个变量相加
x="one"
y="two"
z=x+y
print(z)
对于数字,+ 字符用作数学运算符
x=10
y=15
print(x+y)
如果您尝试组合字符串和数字,Python 会给出错误
x=1991
y="python"
print(x+y)
在函数外部创建的变量(如上述所有实例所示)称为全局变量。
全局变量可以被函数内部和外部的每个人使用。
x=10
def print_x(s)
print(s)
print(print_x(x))
如果在函数内部创建具有相同名称的变量,则该变量将是局部变量,并且只能在函数内部使用。具有相同名称的全局变量将保留原样,并拥有原始值。
x = "awesome"
def myfunc():
x = "fantastic"
print("Python is " + x)
myfunc()
print("Python is " + x)
'''
Python is fantastic
Python is awesome
'''
通常,在函数内部创建变量时,该变量是局部变量,只能在该函数内部使用。
要在函数内部创建全局变量,您可以使用 global 关键字
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
另外,如果要在函数内部更改全局变量,请使用 global 关键字。
x = "awesome"
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
#Python is fantastic
在编程中,数据类型是一个重要的概念。
变量可以存储不同类型的数据,并且不同类型可以执行不同的操作。
在这些类别中,Python 默认拥有以下内置数据类型:
文本类型: | str |
数值类型: | int, float, complex |
序列类型: | list, tuple, range |
映射类型: | dict |
集合类型: | set, frozenset |
布尔类型: | bool |
二进制类型: | bytes, bytearray, memoryview |
您可以使用 type() 函数获取任何对象的数据类型
x=10
print(type(x))
在 Python 中,当您为变量赋值时,会设置数据类型
示例 | 数据类型 | 试一试 |
---|---|---|
x = "Hello World" | str | 试一试 |
x = 29 | int | 试一试 |
x = 29.5 | float | 试一试 |
x = 1j | complex | 试一试 |
x = ["apple", "banana", "cherry"] | list | 试一试 |
x = ("apple", "banana", "cherry") | tuple | 试一试 |
x = range(6) | range | 试一试 |
x = {"name" : "Bill", "age" : 63} | dict | 试一试 |
x = {"apple", "banana", "cherry"} | set | 试一试 |
x = frozenset({"apple", "banana", "cherry"}) | frozenset | 试一试 |
x = True | bool | 试一试 |
x = b"Hello" | bytes | 试一试 |
x = bytearray(5) | bytearray | 试一试 |
x = memoryview(bytes(5)) | memoryview | 试一试 |
如果希望指定数据类型,则您可以使用以下构造函数
示例 | 数据类型 | 试一试 |
---|---|---|
x = str("Hello World") | str | 试一试 |
x = int(29) | int | 试一试 |
x = float(29.5) | float | 试一试 |
x = complex(1j) | complex | 试一试 |
x = list(("apple", "banana", "cherry")) | list | 试一试 |
x = tuple(("apple", "banana", "cherry")) | tuple | 试一试 |
x = range(6) | range | 试一试 |
x = dict(name="Bill", age=36) | dict | 试一试 |
x = set(("apple", "banana", "cherry")) | set | 试一试 |
x = frozenset(("apple", "banana", "cherry")) | frozenset | 试一试 |
x = bool(5) | bool | 试一试 |
x = bytes(5) | bytes | 试一试 |
x = bytearray(5) | bytearray | 试一试 |
x = memoryview(bytes(5)) | memoryview | 试一试 |
Python 中有三种数字类型:
为变量赋值时,将创建数值类型的变量
x=1 #int
x=1.0 #float
x=2j #complex
如需验证 Python 中任何对象的类型,请使用 type() 函数
x=1
print(type(x))
Int 或整数是完整的数字,正数或负数,没有小数,长度不限
x = 10
y = 37216654545182186317
z = -465167846
print(type(x))
print(type(y))
print(type(z))
浮动或“浮点数”是包含小数的正数或负数
x = 3.50
y = 2.0
z = -63.78
print(type(x))
print(type(y))
print(type(z))
浮点数也可以是带有“e”的科学数字,表示 10 的幂
x = 27e4
y = 15E2
z = -49.8e100
print(type(x))
print(type(y))
print(type(z))
复数用 "j" 作为虚部编写
x = 2+3j
y = 7j
z = -7j
print(type(x))
print(type(y))
print(type(z))
您可以使用 int()、float() 和 complex() 方法从一种类型转换为另一种类型
注释:您无法将复数转换为其他数字类型
x = 10 # int
y = 6.3 # float
z = 1j # complex
# 把整数转换为浮点数
a = float(x)
# 把浮点数转换为整数
b = int(y)
# 把整数转换为复数:
c = complex(x)
print(a)
print(b)
print(c)
print(type(a))
print(type(b))
print(type(c))
Python 没有 random() 函数来创建随机数,但 Python 有一个名为 random 的内置模块,可用于生成随机数
导入 random 模块,并显示 1 到 9 之间的随机数
import random
print(random.randrange(1,10))
有时您可能需要为变量指定类型。这可以通过 casting 来完成。 Python 是一门面向对象的语言,因此它使用类来定义数据类型,包括其原始类型。
因此,使用构造函数完成在 python 中的转换:
x = int(1) # x 将是 1
y = int(2.5) # y 将是 2
z = int("3") # z 将是 3
x = float(1) # x 将是 1.0
y = float(2.5) # y 将是 2.5
z = float("3") # z 将是 3.0
w = float("4.6") # w 将是 4.6
x = str("S2") # x 将是 'S2'
y = str(3) # y 将是 '2'
z = str(4.0) # z 将是 '4.0'
python 中的字符串字面量由单引号或双引号括起。
'hello' 等同于 "hello"。
您可以使用 print() 函数显示字符串字面量:
x='pyhton'
y="python"
print(x)
print(y)
通过使用变量名称后跟等号和字符串,可以把字符串赋值给变量
a="python"
print(a)
您可以使用三个引号将多行字符串赋值给变量:
a = """Python is a widely used general-purpose, high level programming language.
It was initially designed by Guido van Rossum in 1991
and developed by Python Software Foundation.
It was mainly developed for emphasis on code readability,
and its syntax allows programmers to express concepts in fewer lines of code."""
print(a)
或三个单引号:
a = '''Python is a widely used general-purpose, high level programming language.
It was initially designed by Guido van Rossum in 1991
and developed by Python Software Foundation.
It was mainly developed for emphasis on code readability,
and its syntax allows programmers to express concepts in fewer lines of code.'''
print(a)
像许多其他流行的编程语言一样,Python 中的字符串是表示 unicode 字符的字节数组。
但是,Python 没有字符数据类型,单个字符就是长度为 1 的字符串。
方括号可用于访问字符串的元素。
a = "Hello, World!"
print(a[1])
您可以使用裁切语法返回一定范围的字符。
指定开始索引和结束索引,以冒号分隔,以返回字符串的一部分。
b = "Hello, World!"
print(b[2:5])
使用负索引从字符串末尾开始切片:
b = "Hello, World!"
print(b[-5:-2])
如需获取字符串的长度,请使用 len() 函数
a="this is a python"
print(len(a))
Python 有一组可用于字符串的内置方法。
lower() 返回小写的字符串:
upper() 方法返回大写的字符串:
replace() 用另一段字符串来替换字符串:
split() 方法在找到分隔符的实例时将字符串拆分为子字符串
strip() 方法删除开头或结尾的空白字符:
a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
如需检查字符串中是否存在特定短语或字符,我们可以使用 in 或 not in 关键字。
txt = "China is a great country"
x = "ina" in txt
print(x)
如需串联或组合两个字符串,您可以使用 + 运算符。
a = "Hello"
b = "World"
c = a + b
print(c)
正如在 Python 变量一章中所学到的,我们不能像这样组合字符串和数字
age = 63
txt = "My name is Bill, I am " + age
print(txt)
但是我们可以使用 format() 方法组合字符串和数字!
format() 方法接受传递的参数,格式化它们,并将它们放在占位符 {} 所在的字符串中
age = 63
txt = "My name is Bill, and I am {}"
print(txt.format(age))
format() 方法接受不限数量的参数,并放在各自的占位符中
quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))
您可以使用索引号 {0} 来确保参数被放在正确的占位符中
quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))
在编程中,您通常需要知道表达式是 True 还是 False。
您可以计算 Python 中的任何表达式,并获得两个答案之一,即 True 或 False。
比较两个值时,将对表达式求值,Python 返回布尔值答案
print(8 > 7)
print(8 == 7)
print(8 > 7)
当在 if 语句中运行条件时,Python 返回 True 或 False
a = 200
b = 33
if b > a:
print("b is greater than a")
else:
print("b is not greater than a")
bool() 函数可让您评估任何值,并为您返回 True 或 False
print(bool("Hello"))
print(bool(10))
如果有某种内容,则几乎所有值都将评估为 True。
除空字符串外,任何字符串均为 True。
除 0 外,任何数字均为 True。
除空列表外,任何列表、元组、集合和字典均为 True
实际上,除空值(例如 ()、[]、{}、""、数字 0 和值 None)外,没有多少值会被评估为 False。当然,值 False 的计算结果为 False。
class myclass():
def __len__(self):
return 0
myobj = myclass()
print(bool(myobj))
Python 还有很多返回布尔值的内置函数,例如 isinstance() 函数,该函数可用于确定对象是否具有某种数据类型
x = 200
print(isinstance(x, int))
运算符用于对变量和值执行操作。
Python 在以下组中划分运算符:
算术运算符与数值一起使用来执行常见的数学运算
运算符 | 名称 | 实例 | 试一试 |
---|---|---|---|
+ | 加 | x + y | 试一试 |
- | 减 | x - y | 试一试 |
* | 乘 | x * y | 试一试 |
/ | 除 | x / y | 试一试 |
% | 取模 | x % y | 试一试 |
** | 幂 | x ** y | 试一试 |
// | 地板除(取整除) | x // y | 试一试 |
赋值运算符用于为变量赋值
运算符 | 实例 | 等同于 | 试一试 |
---|---|---|---|
= | x = 5 | x = 5 | 试一试 |
+= | x += 3 | x = x + 3 | 试一试 |
-= | x -= 3 | x = x - 3 | 试一试 |
*= | x *= 3 | x = x * 3 | 试一试 |
/= | x /= 3 | x = x / 3 | 试一试 |
%= | x %= 3 | x = x % 3 | 试一试 |
//= | x //= 3 | x = x // 3 | 试一试 |
**= | x **= 3 | x = x ** 3 | 试一试 |
&= | x &= 3 | x = x & 3 | 试一试 |
|= | x |= 3 | x = x | 3 | 试一试 |
^= | x ^= 3 | x = x ^ 3 | 试一试 |
>>= | x >>= 3 | x = x >> 3 | 试一试 |
<<= | x <<= 3 | x = x << 3 | 试一试 |
比较运算符用于比较两个值
比较运算符用于比较两个值:
运算符 | 名称 | 实例 | 试一试 |
---|---|---|---|
== | 等于 | x == y | 试一试 |
!= | 不等于 | x != y | 试一试 |
> | 大于 | x > y | 试一试 |
< | 小于 | x < y | 试一试 |
>= | 大于或等于 | x >= y | 试一试 |
<= | 小于或等于 | x <= y | 试一试 |
逻辑运算符用于组合条件语句:
运算符 | 描述 | 实例 | 试一试 |
---|---|---|---|
and | 如果两个语句都为真,则返回 True。 | x > 3 and x < 10 | 试一试 |
or | 如果其中一个语句为真,则返回 True。 | x > 3 or x < 4 | 试一试 |
not | 反转结果,如果结果为 true,则返回 False | not(x > 3 and x < 10) | 试一试 |
身份运算符用于比较对象,不是比较它们是否相等,但如果它们实际上是同一个对象,则具有相同的内存位置:
运算符 | 描述 | 实例 | 试一试 |
---|---|---|---|
is | 如果两个变量是同一个对象,则返回 true。 | x is y | 试一试 |
is not | 如果两个变量不是同一个对象,则返回 true。 | x is not y | 试一试 |
成员资格运算符用于测试序列是否在对象中出
运算符 | 描述 | 实例 | 试一试 |
---|---|---|---|
in | 如果对象中存在具有指定值的序列,则返回 True。 | x in y | 试一试 |
not in | 如果对象中不存在具有指定值的序列,则返回 True。 | x not in y | 试一试 |
位运算符用于比较(二进制)数字:
运算符 | 描述 | 实例 |
---|---|---|
& | AND | 如果两个位均为 1,则将每个位设为 1。 |
| | OR | 如果两位中的一位为 1,则将每个位设为 1。 |
^ | XOR | 如果两个位中只有一位为 1,则将每个位设为 1。 |
~ | NOT | 反转所有位。 |
<< | Zero fill left shift | 通过从右侧推入零来向左移动,推掉最左边的位。 |
>> | Signed right shift | 通过从左侧推入最左边的位的副本向右移动,推掉最右边的位。 |