Python基础一
一、Python语法规则
1.输出
输出
:将代码执行结果或提示显示出来,让用户可以看到
print("内容1","内容2","内容3")
// 输出默认换行
print("hello world");
//若不需要换行,加入end=" "
print("hello world",end=" ");
2.注释
注释
:对所写的代码加以说明,但又不希望解释器去执行该内容
# 单行注释
a=1
b=2
# print(a+b) 单行注释 快捷键ctrl+/
"""
多行注释:
方法一:三引号 单双都可
方法二:选中多行,按快捷键ctrl+/
"""
print("代码执行")
print("多行注释")
3.层级
代码层级
:判断、循环、函数、类等都具有层级关系
用缩进来表示层级,同一级别的缩进一定要保持一致,Python推荐使用tab来进行缩进操作,不推荐用空格
4.标识符
标识符
:用户定义的文件名、变量名、函数、类名、模块名、项目名等,需要见名知意
标识符的命名规范:
- 只能由字母、数字、下划线 组成。
- 不能以数字开头。
- 不能是Python内置关键字
- 严格区分大小写
关键字:python语法已经定义的具有特殊含义和功能的标识符
关键字 | 描述 |
---|---|
and | 逻辑运算符。 |
as | 创建别名。 |
assert | 用于调试。 |
break | 跳出循环。 |
class | 定义类。 |
continue | 继续循环的下一个迭代。 |
def | 定义函数。 |
del | 删除对象。 |
elif | 在条件语句中使用,等同于 else if。 |
else | 用于条件语句。 |
except | 处理异常,发生异常时如何执行。 |
False | 布尔值,比较运算的结果。 |
finally | 处理异常,无论是否存在异常,都将执行一段代码。 |
for | 创建 for 循环。 |
from | 导入模块的特定部分。 |
global | 声明全局变量。 |
if | 写一个条件语句。 |
import | 导入模块。 |
in | 检查列表、元组等集合中是否存在某个值。 |
is | 测试两个变量是否相等。 |
lambda | 创建匿名函数。 |
None | 表示 null 值。 |
nonlocal | 声明非局部变量。 |
not | 逻辑运算符。 |
or | 逻辑运算符。 |
pass | null 语句,一条什么都不做的语句。 |
raise | 产生异常。 |
return | 退出函数并返回值。 |
True | 布尔值,比较运算的结果。 |
try | 编写 try…except 语句。 |
while | 创建 while 循环。 |
with | 用于简化异常处理。 |
yield | 结束函数,返回生成器。 |
下划线命名法和驼峰命名法
下划线命名规范:
多个单词表示的标识符用下划线连接(均小写),如:first_name
Camel 骆驼命名规范:
变量名首单词的首字母要小写,其余每个单词的首字母要大写,如firstName
二、Python变量
1.变量的定义与引用
(1)定义
常量:固定不变的值
变量
:可以随时发生改变,定义了一个变量,相当于开辟了一个内存空间,
变量也是一种标识符,所以也遵循标识符命名规范
// 单个变量赋值
变量 = 值;
//多个变量连续赋值,*变量表示不定长变量
变量1 = 变量2 = 值
变量1,*变量2,变量3 = 值1,值2,值3,值4
变量1=值,实际上是在电脑内存中开辟了一小块控件,并将值存储在内存中,然后我们定义了一个变量1去接收这个值,这个赋值的过程,其实就是将该值的内存地址告诉给变量1
(2)引用
• 用做计算、用做输出、用作调用等等
a=1
b=0.5
c=a+b
print(c)
print(a,b)
2.变量的输入和输出
输入:
语法:变量名 = input(‘提示信息’)
• 在控制台原样输出提示信息
• 在控制台接收输入数据,并将接受的数据赋值给变量名
• 调用变量
a = input("请输入密码:") # 需要回车确定
print(a)
注意:
input接受的所有的数据都会以字符串的形式存储,如果要进行其他类型的操作,则必须要进行转换
输出:
python中的占位符:表示占用了这个位置,而我们要输出什么值,后面再去决定
方式一:使用 %d %s %f 来进行占用 后面接上 %(value1, value2, value3)
%d:整数--------%06d表示输出的整数显示位数,不足的地方使用0补全
%s:字符串 ---- 由引号括起来的内容,都是字符串
%f:小数 --------%.02f 表示小数点后显示两位
print("""
==== 自我介绍 ====
名字:%s
地址:%s
年龄:%d
薪资:%f
""" % ("贾宝玉", "北京", 18, 500.1))
方式二:使用 {} 来表示占位,后面接 .format(value1, value2, value3),有几个括号,就传几个value
print("""
==== 自我介绍 ====
名字:{3}
地址:{0}
年龄:{1}
薪资:{2}
""".format("北京", 18, 505.1, "贾宝玉"))
“三引号”是为了将格式原封不动的保存下来进行输出
3.变量的基本数据类型
数据类型可以分为数字型和非数字型
数字型:
整型(int) 0~9组成的所有数字
浮点型(float) 包含有小数点
布尔型(bool) 一般用来跟条件判断/循环结合使用
真 True 非 0 数 ——非零即真
假 False 0
复数型(complex)主要用于科学计算,例如:平面场问题、波动问题、电感电容等
非数字型:
字符串(str)
列表(list)
元组(tuple)
字典(dict)
集合(set)
我们可以借助type()方法 查看变量的数据类型
var=7.23
print(type(var)) #输出float浮点型
4.变量的计算
(1)数字型变量之间可以直接计算
a=2
b=3.142367
c=True
total1=a+b # 整数+浮点数 5.142367
//布尔值作为变量参与运算时,True代表1 False代表2
total=a+c # 整数+布尔值 3
(2)数字型变量不能和字符串变量直接计算
a=2
b="3"
total1=a+b # 整数+字符串
print(total1)
执行上述代码,报错如下:
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
(3)运算符在字符串中的应用
a="abc"
b="123"
//"+"拼接字符串
print(a+b) # 输出结果 abc123
//"*"重复拼接字符串
print(a*3) # 输出结果 abcabcabc
5. 类型转换
如果数字型变量要和字符串类型变量计算,需将字符串变量转换为整型
a=2
b="3"
total1=a+int(b)
print(total1) #输出结果5
我们可以把不同的数据类型,转换为指定的类型
字符串 == 整数 int(“字符串 – 一定得是数字”)
字符串 == 浮点数 float()
字符串 == 布尔值 bool()
整数 == 字符串 str()
注意:
• 字符串转为整数时,字符串的内容必须只包含数字;
• 字符串转为浮点数时,字符串的内容必须只包含数字与小数点,否则会报错。
• 空字符串转为布尔值为False,非空字符串永远为True
str2 = "3.14159255358979464332"
//字符串的float不能直接转为int
b = float(str2) # 把float类型的字符串,转为float类型
c = int(b) # 把float类型,转为int类型
print(c)
print(type(c))
三、 运算符
1.算数运算符
算数运算符,主要用来进行计算,例如:+ , - ,*, / , % , // ,**
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加-两个对象相加 a + b | 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分(向下取整) | >>> 9//2 4 >>> -9//2 -5 |
2.比较(关系运算符)
比较运算符,一般用于判断、循环。例如:>(大于)、<(小于),==(等于),!=(不等于),>=(大于等于),<=(小于等于)
以下假设变量: a=10,b=20:
a>b #返回False
a==b #返回False
a<b #返回True
a!=b #返回True
a>=b #返回False
a<=b #返回True
比较运算符返回的结果是布尔值:True或者False
3.赋值运算符
赋值运算,用于给变量赋值,例如:=,+=,-=,*=,/=, %=,**=,//=
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c=a+b 将a+b的运算结果赋值给c |
+= | 加法赋值运算符 | c+=a等效于c=c+a |
-= | 减法赋值运算符 | c -= a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
4.逻辑运算符
逻辑运算,一般用于判断,循环。例如:and(与) ,or(或) , not(非)
以下假设变量 a 为 10,b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False。 |
a=Ture
b=False
print(a and b) #返回False
print(a or b) #返回True
print(not a) #返回False
5.位运算符
按位运算符是把数字看作二进制来进行计算的
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符 | 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符 | 只要对应的二个二进位有一个为1时,结果位就为1 |
^ | 按位异或运算符 | 当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符 | 对数据的每个二进制位取反,即把1变为0,把0变为1 |
<< | 左移动运算符 | 运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0 |
>> | 右移动运算符 | 把>>左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
a = 60 #二进制 a = 0011 1100
b = 13 #二进制 b = 0000 1101
print(a&b) # 12 二进制为 0000 1100
print(a|b) # 61 二进制为 0011 1101
print(a^b) # 49 二进制为 0011 0001
print(~a) # -61 二进制原码为 1100 0011 在计算机中数值一律由补码进行存储
#先转为反码 1011 1100 最高位是符号位
#再转为补码 负数反码加1 1011 1101 转为10进制-61
print(a>>2) #15 二进制为 0000 1111
print(a<<2) #240 二进制为 1111 0000
6.成员运算符
成员运算,用来判断指定的内容是否存在变量中,变量类型可以是字符串、数组、列表、元组
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
st1="hello world"
a="b"
if a in str1:
print("{}存在于{}序列中".format(a,str1))
if a not in str1:
print("{}不在{}序列中".format(a,str1))
7.身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
注: id() 函数用于获取对象内存地址
8.运算符优先级
逻辑运算符内部三个优先级: not > and > or
a=Ture
b=False
c=True
print(a and b or c ) #返回True
print(not a and b) #返回False
算术运算符>比较运算符>逻辑运算符
案例1:num1=10 num2=20
计算表达式对的结果:num1 > num2 and num1+10 == num2 or (not num2)
num1=10
num2=20
print(num1 > num2 and num1+10 == num2 or (not num2)) #返回False