|
print(1 / 2) # 0.5
与C/C++等其他语言不同的是,Python中两个整数相除的结果为浮点数
Python中浮点数在内存中存储的时候遵循IEEE754标准,这套标准在表示浮点数时可能会存在微小的误差,但这个误差在实际开发中不会造成太大的影响
Python中创建变量的语法非常简单,比如:
a = 10
为了区分不同种类的数据,于是出现了变量类型这个概念。
与C/C++等其他语言不同的是,Python中的变量在定义的时候不需要显示声明其类型,而是在初始化值的时候确定的。
整数
整数的类型为int,比如:
a = 10
print(type(a)) # <class 'int'>
与C/C++等其他语言不同的是,Python中int类型的变量表示的数据范围是没有上限的,只要内存够大,就能够表示无限大的数据
浮点数
浮点数(小数)的类型为float,比如:
b = 0.7
print(type(b)) # <class 'float'>
与C/C++等其他语言不同的是,Python中表示浮点数时只有float一种类型,没有double类型
,实际上Python中的float类型就相当于C/C++等语言中的double类型,表示双精度浮点数Python开发者的哲学:用一种方法,最好只有一种方法来做一件事。
字符串
字符串的类型为str,比如:
c = 'China'
print(type(c)) # <class 'str'>
字符串可以是用“单引号”,“双引号”,“三单引号”以及“三双引号”引起来的一串字符序列。比如:
a = 'China'
b = "China"
c = '''China'''
d = """China"""
print(a) # China
print(b) # China
print(c) # China
print(d) # China
另外,使用“三单引号”和“三双引号”可以将多行字符串赋值给变量,比如:
a = """
hello world
hello python
"""
可以使用len函数来获取字符串的长度,比如:
a = "China"
print(len(a))
还可以使用’+'对两个字符串进行拼接,比如:
a = "hello"
b = " world"
c = a + b
print(c) # hello world
布尔
表示真假的类型是bool,比如:
a = True
print(type(a)) # <class 'bool'>
其它类型
除了上述的类型之外,Python中还有list, dict, 自定义类型等等,后面会一一介绍。
静态类型与动态类型:
静态类型:在编译时,编译器基于所声明的数据类型确定变量的类型
动态类型:在运行时,解释器基于变量值的类型确定变量的类型
C/C++等大多数语言都是静态类型语言,在编写静态类型语言的代码时,必须声明变量的数据类型,而Python是一种动态类型语言,因此在编写Python代码时,不用事先声明变量的数据类型。
由于在动态类型语言中,变量值的类型决定了变量的类型,因此在Python中同一个变量在不同时刻其类型可能是不同的,比如:
a = 10
print(type(a)) # <class 'int'>
a = 0.7
print(type(a)) # <class 'float'>
动态类型特性是一把双刃剑:
Python中有以下两种风格的注释:
注释行
使用 # 开头的行都是注释行
,注释可以写在一行的开头,也可以写在代码的右侧,比如:
# 这是一个注释
print("hello python") # 这也是一个注释
文档字符串
使用三引号引起来的内容称为“文档字符串”,也是注释的一种,比如:
"""
这是多行文本知识
第一行
第二行
第三行
...
"""
说明一下:
程序需要与用户进行交互。
输入输出最基本的方法就是控制台,用户可以通过控制台输入一些字符串传递给程序,程序通过控制台将其运行结果展示给用户。
使用print函数可以将任意类型的变量输出到控制台,比如:
a = 2024
print(a) # 2024
a = 0.7
print(a) # 0.7
如果想要混合输出不同类型的变量,那么就需要对输出的字符串进行格式化,比如:
year = 2024
name = "dragon"
print(f'The {year} year is {name} year') # The 2024 year is dragon year - 英语语法可忽略(手动狗头)
说明一下:
使用input函数可以从控制台读取用户输入的数据,比如:
num = input("你输入一个整数:")
print(f'你输入的整数是{num}')
说明一下:
input的返回值就是用户输入的内容,是字符串类型
由于input 函数的返回值是字符串类型,因此下面的代码实际进行的是字符串拼接操作:
a = input('请输入第一个整数:') # 10
b = input('请输入第二个整数:') # 20
print(f'{a} + {b} = {a + b}') # 1020
如果我们想进行算术运算,那么在运算前需要进行类型转换操作,比如:
a = input('请输入第一个整数:') # 10
b = input('请输入第二个整数:') # 20
a = int(a)
b = int(b)
print(f'{a} + {b} = {a + b}') # 30
说明一下:
与C/C++不同的是,使用int()的方式可以将一个变量转换为int类型
Python中的算术运算符包括 +,-,*,/,%,**(幂),//(地板除)
Python中的关系运算符包括 <, <=, >, >=, ==, !=
判断两个字符串是否相等
与C/C++等其他语言不同的是,Python中使用==或者!=即可判断两个字符串的内容是否相等。
比如:
a = "hello"
b = "hello"
print(a == b) # True
判断两个浮点数是否相等
不能直接使用==判断两个浮点数是否相等,因为浮点数在计算机中的表示并不是精确的。比如:
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(a == b) # False
正确的比较两个浮点数的方式应该是,判定这两个浮点数的差值是否小于允许的误差范围。
比如:
a = 0.1 + 0.2
b = 0.3
print(a) # 0.30000000000000004
print(b) # 0.3
print(-0.000001 < (a - b) < 0.000001) # True
Python中的逻辑运算符包括:and, or, not
说明一下:
Python中也存在短路求值规则
,对于and,如果左侧表达式为False,则整体一定为False,因此右侧表达式不再执行;对于or,如果左侧表达式为True,则整体一定为True,因此右侧表达式不再执行Python中的赋值运算符,包括=
、+=
、-=
、*=
、/=
、%=
、**=
、//=
、&=
、|=
、^=
、<<=
、>>=
。
Python还支持多元赋值的方式对多个变量进行赋值。比如:
a, b = 10, 20
print(a) # 10
print(b) # 20
多元赋值能够帮助我们解决一些特殊的问题,比如交换两个变量的值:
a, b = 10, 20
a, b = b, a
print(a) # 20
print(b) # 10
说明一下:
Python中没有++,--的概念,如果需要对变量进行自增/自减,可以使用+= / -= 1
除去上面介绍的运算符之外,Python中还有其他的运算符,我们后续介绍。
标准格式
if 表达式1:
语句块1
elif 表达式2:
语句块2
else:
语句块3
说明一下:
条件表达式和else后面使用 : 结尾
对于多条件分支,不是写作else if,而是elif
使用缩进来区分各个代码块
代码示例:
choice = input('你大学认真学习了吗?(输入1表示是,输入0表示否): ')
if choice == '1':
print('你将会找到一份满意的工作。')
elif choice == '0':
print('你将来会后悔的。')
else:
print('你的输入有误。')
说明一下:
1.输入一个整数,判定是否是奇数
num = int(input('请输入一个整数:')) # 将输入的字符串转换成int类型
if num % 2 == 1:
print('这是一个奇数')
else:
print('这是一个偶数')
说明一下:
2.输入一个整数,判定是正数还是负数
num = int(input('请输入一个整数:'))
if num > 0:
print('这是一个正数')
elif num < 0:
print('这是一个负数')
else:
print('这是0')
3.判断年份是闰年还是平年
year = int(input('请输入一个年份:'))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('闰年')
else:
print('平年')
在Python中使用缩进来区分代码块,不同级别的缩进,程序的执行效果是不同的。
比如:
# 代码1
num = input('请输入一个整数:')
if num == '1':
print('hello')
print('world')
# 代码2
num = input('请输入一个整数:')
if num == '1':
print('hello')
print('world')
说明一下:
Python语法规定,if语句、for语句、while语句、函数体、类定义都不能为空,如果因为某些原因写了对应无内容的语句,就需要使用pass语句来避免语法错误。如下:
if a < b:
pass
while a < b:
pass
for x in range(10):
pass
def func():
pass
class MyClass:
pass
说明一下:
while 表达式1:
语句块1
else:
语句块2
说明一下:
在循环表达式和else后面使用 :结尾
1.打印1-10的整数
num = 1
while num <= 10:
print(num)
num += 1
2.计算1-100的和
num = 1
sum = 0
while num <= 100:
sum += num
num += 1
print(sum)
3.计算5的阶乘
result = 1
num = 5
while num >= 1:
result *= num
num -= 1
print(result)
4.求1! + 2! + 3! + 4! + 5!
num = 1
sum = 0
while num <= 5:
factorResult = 1
i = 1
# 计算num的阶乘
while i <= num:
factorResult *= i
i += 1
sum += factorResult
num += 1
print(sum)
for 循环变量 in 可迭代对象:
语句块1
else:
语句块2
说明一下:
可迭代对象和else后面以 :结尾
range函数经常和for循环搭配使用,其可以返回一个数字序列(可迭代对象)。
range(起始值=0,结束值,增量值=1)
参数说明:
range函数的三种使用方式:
对于range函数的第三种使用方式,如果step的值为正数,那么start + n * step < end,如果step的值为负数,那么start + n * step > end.
range(10) # 0 1 2 3 4 5 6 7 8 9
range(1, 10) # 1 2 3 4 5 6 7 8 9
range(1, 10, 2) # 1 3 5 7 9
range(10, 1, -2) # 10 8 6 4 2
1.打印1-10的整数
for i in range(1, 11):
print(i)
2.打印10-1的整数
for i in range(10, 0, -1):
print(i)
3.求1-100的和
sum = 0
for i in range(1, 101):
sum += i
print(sum)
|
|