国内免费网站服务器推荐,莆田市秀屿区建设局网站,WordPress多域名无法登录,黑龙江省住房和城乡建设厅网站你好#xff0c;我是安然无虞。 文章目录 变量及类型变量类型动态类型特性 注释输入输出通过控制台输出通过控制台输入 运算符算术运算符关系运算符逻辑运算符赋值运算符 条件循环语句条件语句语法格式代码案例缩进和代码块空语句pass 循环语句while循环语法格式代码案例 for… 你好我是安然无虞。 文章目录 变量及类型变量类型动态类型特性 注释输入输出通过控制台输出通过控制台输入 运算符算术运算符关系运算符逻辑运算符赋值运算符 条件循环语句条件语句语法格式代码案例缩进和代码块空语句pass 循环语句while循环语法格式代码案例 for循环语法格式range函数代码案例 变量及类型
变量
print(1 / 2) # 0.5与C/C等其他语言不同的是Python中两个整数相除的结果为浮点数 Python中浮点数在内存中存储的时候遵循IEEE754标准这套标准在表示浮点数时可能会存在微小的误差但这个误差在实际开发中不会造成太大的影响
Python中创建变量的语法非常简单比如
a 10其中 a 为变量名当程序中需要创建多个变量时可以通过变量名来进行区分首次使用赋值表达式设置变量的值这个操作是创建变量初始化操作对已存在的变量进行赋值操作则是在修改这个变量的值重新赋值
为了区分不同种类的数据于是出现了变量类型这个概念。
类型
与C/C等其他语言不同的是Python中的变量在定义的时候不需要显示声明其类型而是在初始化值的时候确定的。 整数 整数的类型为int比如
a 10
print(type(a)) # class inttype和print一样都是Python中的内置函数可以使用type函数来查看一个变量的类型与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 Chinaprint(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布尔类型只有两种取值True真和False假 其它类型 除了上述的类型之外Python中还有list, dict, 自定义类型等等后面会一一介绍。
动态类型特性
静态类型与动态类型
静态类型在编译时编译器基于所声明的数据类型确定变量的类型动态类型在运行时解释器基于变量值的类型确定变量的类型
C/C等大多数语言都是静态类型语言在编写静态类型语言的代码时必须声明变量的数据类型而Python是一种动态类型语言因此在编写Python代码时不用事先声明变量的数据类型。
由于在动态类型语言中变量值的类型决定了变量的类型因此在Python中同一个变量在不同时刻其类型可能是不同的比如
a 10
print(type(a)) # class inta 0.7
print(type(a)) # class float动态类型特性是一把双刃剑
对于中小型程序可以大大的减少代码量比如写一段代码就可以同时支持多种类型对于大型程序提高了模块之间的交互成本比如程序员A提供的代码难以被B理解
注释
Python中有以下两种风格的注释 注释行 使用 # 开头的行都是注释行注释可以写在一行的开头也可以写在代码的右侧比如
# 这是一个注释
print(hello python) # 这也是一个注释文档字符串 使用三引号引起来的内容称为“文档字符串”也是注释的一种比如 这是多行文本知识
第一行
第二行
第三行
...说明一下
Python中没有多行注释的概念能够以三引号的方式添加注释根本原因是因为Python会忽略未分配给变量的字符串文本这种以三引号引起来的“文档字符串”通常放在文件、函数、类的开头
输入输出
程序需要与用户进行交互。
用户把信息传递给程序的过程称为“输入”程序把结果展示给用户的过程称为“输出”
输入输出最基本的方法就是控制台用户可以通过控制台输入一些字符串传递给程序程序通过控制台将其运行结果展示给用户。
通过控制台输出
使用print函数可以将任意类型的变量输出到控制台比如
a 2024
print(a) # 2024a 0.7
print(a) # 0.7如果想要混合输出不同类型的变量那么就需要对输出的字符串进行格式化比如
year 2024
name dragonprint(fThe {year} year is {name} year) # The 2024 year is dragon year - 英语语法可忽略手动狗头说明一下
使用 f 作为前缀的字符串称为 f-stringf-string里面的 {} 用来内嵌一个其他的变量或表达式
通过控制台输入
使用input函数可以从控制台读取用户输入的数据比如
num input(你输入一个整数)
print(f你输入的整数是{num})说明一下
Input的参数相当于“提示信息”也可以没有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类型类似的还有float(), bool(), str()等
运算符
算术运算符
Python中的算术运算符包括 -*/%**(幂)//(地板除)
0 不能作为除数否则程序会抛异常两个整数相除后得到的是一个浮点数** 可以求一个数的整数次幂也可以求一个数的小数次幂// 是地板除整数除以整数得到的还是整数向下取整
关系运算符
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
and并且。两侧操作数均为True则最终结果为True否则为False一假则假or或者。两侧操作数均为False则最终结果为False否则为True一真则真not逻辑取反。操作数本身为True则返回False本身为False则返回True
说明一下
在Python中 a b and b c 等价于 a b c这个设定与其他编程语言都不相同与其他编程语言类似的是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命中条件后要执行的语句块使用缩进来区分各个代码块Python当中if语句也支持嵌套
代码示例
choice input(你大学认真学习了吗(输入1表示是输入0表示否): )if choice 1:print(你将会找到一份满意的工作。)
elif choice 0:print(你将来会后悔的。)
else:print(你的输入有误。)说明一下
input函数的返回值是字符串类型
代码案例 1.输入一个整数判定是否是奇数 num int(input(请输入一个整数)) # 将输入的字符串转换成int类型if num % 2 1:print(这是一个奇数)
else:print(这是一个偶数)说明一下
在C/C等其他语言中负奇数取余后得到的是-1在Python中负奇数取余后得到的是1 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)说明一下
代码1中的两条打印语句都具有一级缩进因此都属于if内的代码块代码2中只有第一条打印语句具有一级缩进第二条打印语句没有缩进因此只有第一条打印语句属于if内的代码块
空语句pass
Python语法规定if语句、for语句、while语句、函数体、类定义都不能为空如果因为某些原因写了对应无内容的语句就需要使用pass语句来避免语法错误。如下
if a b:passwhile a b:passfor x in range(10):passdef func():passclass MyClass:pass说明一下
空语句pass并不会对程序的执行有任何影响只是占个位置保持Python语法格式符合要求。
循环语句
while循环
语法格式
while 表达式1:语句块1
else:语句块2说明一下
在循环表达式和else后面使用 结尾命中条件后要执行的语句块使用缩进来区分各个代码块Python当中while循环也支持嵌套breakcontinue用法与C/C一致如果使用了else语句那么当循环条件不再成立时会执行一次else代码块
代码案例 1.打印1-10的整数 num 1while num 10:print(num)num 12.计算1-100的和 num 1
sum 0while num 100:sum numnum 1print(sum)3.计算5的阶乘 result 1
num 5while num 1:result * numnum - 1print(result)4.求1! 2! 3! 4! 5! num 1
sum 0while num 5:factorResult 1i 1# 计算num的阶乘while i num:factorResult * ii 1sum factorResultnum 1print(sum)for循环
语法格式
for 循环变量 in 可迭代对象:语句块1
else:语句块2说明一下
可迭代对象包括列表、元组、集合、字典、字符串等可迭代对象和else后面以 结尾命中条件后要执行的代码块使用缩进进行区分如果使用了else语句那么当循环条件不在满足时会执行一次else代码块
range函数
range函数经常和for循环搭配使用其可以返回一个数字序列可迭代对象。
range(起始值0结束值增量值1)参数说明
第一个参数代表的是数字序列的起始值默认为0第二个参数代表的是数字序列的结束值不包括结束值左闭右开第三个参数代表的是数字序列的增量值步长默认为1
range函数的三种使用方式
range(end): 返回的数字序列为0123 … end-1range(start, end): 返回的数字序列为start, start1, start2 … end-1range(start, end, step): 返回的数字序列为start, start step, start 2 * step … start n * step
对于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 0for i in range(1, 101):sum i
print(sum)遇见安然遇见你不负代码不负卿。 谢谢老铁的时间咱们下篇再见