变量和类型
- 整型:Python中可以处理任意大小的整数,而且支持二进制、八进制、十进制和十六进制的表示法。
- 浮点型:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如
123.456
)之外还支持科学计数法(如1.23456e2
)。 - 字符串型:字符串是以单引号或双引号括起来的任意文本,比如
'hello'
和"hello"
,字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)。 - 布尔型:布尔值只有
True
、False
两种值,要么是True
,要么是False
,在Python中,可以直接用True
、False
表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5
会产生布尔值True
,而2 == 1
会产生布尔值False
)。 - 复数型:形如
3+5j
,跟数学上的复数表示一样,唯一不同的是虚部的i
换成了j
。
变量命名
对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
- 硬性规则:
- 变量名由字母、数字和下划线构成,数字不能开头。
- 大小写敏感(大写的
a
和小写的A
是两个不同的变量)。 - 不能是Python内置的关键字和系统保留字。
- PEP 8要求:
-
- 用小写字母拼写,多个单词用下划线连接。
- 受保护的实例属性用单个下划线开头(后面会讲到)。
- 私有的实例属性用两个下划线开头(后面会讲到)。
- 当然,作为一个专业的程序员,给变量(事实上应该是所有的标识符)命名时做到见名知意也是非常重要的。
-
""" 使用变量保存数据并进行加减乘除运算 Version: 0.1 Author: 骆昊 """ a = 321 b = 12 print(a + b) # 333 print(a - b) # 309 print(a * b) # 3852 print(a / b) # 26.75 """ 使用type()检查变量的类型 Version: 0.1 Author: 骆昊 """ a = 100 b = 12.345 c = 1 + 5j d = 'hello, world' e = True print(type(a)) # <class 'int'> print(type(b)) # <class 'float'> print(type(c)) # <class 'complex'> print(type(d)) # <class 'str'> print(type(e)) # <class 'bool'>
可以使用Python中内置的函数对变量类型进行转换。
int()
:将一个数值或字符串转换成整数,可以指定进制。float()
:将一个字符串转换成浮点数。str()
:将指定的对象转换成字符串形式,可以指定编码。chr()
:将整数转换成该编码对应的字符串(一个字符)。ord()
:将字符串(一个字符)转换成对应的编码(整数)。
""" 使用input()函数获取键盘输入(字符串) 使用int()函数将输入的字符串转换成整数 使用print()函数输出带占位符的字符串 Version: 0.1 Author: 骆昊 """ a = int(input('a = ')) b = int(input('b = ')) print('%d + %d = %d' % (a, b, a + b)) print('%d - %d = %d' % (a, b, a - b)) print('%d * %d = %d' % (a, b, a * b)) print('%d / %d = %f' % (a, b, a / b)) print('%d // %d = %d' % (a, b, a // b)) print('%d %% %d = %d' % (a, b, a % b)) print('%d ** %d = %d' % (a, b, a ** b))
运算符
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。除了我们之前已经用过的赋值运算符和算术运算符,我们稍后会陆续讲到其他运算符的使用。
运算符 | 描述 | |
---|---|---|
[] [:] |
下标,切片 | |
** |
指数 | |
~ + - |
按位取反, 正负号 | |
* / % // |
乘,除,模,整除 | |
+ - |
加,减 | |
>> << |
右移,左移 | |
& |
按位与 | |
^ `\ |
` | 按位异或,按位或 |
<= < > >= |
小于等于,小于,大于,大于等于 | |
== != |
等于,不等于 | |
is is not |
身份运算符 | |
in not in |
成员运算符 | |
not or and |
逻辑运算符 | |
= += -= *= /= %= //= **= &= ` |
=`^= >>= <<= |
(复合)赋值运算符 |
说明: 在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。
赋值运算符
赋值运算符应该是最为常见的运算符,它的作用是将右边的值赋给左边的变量。下面的例子演示了赋值运算符和复合赋值运算符的使用。
""" 赋值运算符和复合赋值运算符 Version: 0.1 Author: 骆昊 """ a = 10 b = 3 a += b # 相当于:a = a + b a *= a + 2 # 相当于:a = a * (a + 2) print(a) # 算一下这里会输出什么
比较运算符和逻辑运算符
比较运算符有的地方也称为关系运算符,包括==
、!=
、<
、>
、<=
、>=
,我相信没有什么好解释的,大家一看就能懂,唯一需要提醒的是比较相等用的是==
,请注意这个地方是两个等号,因为=
是赋值运算符,我们在上面刚刚讲到过,==
才是比较相等的比较运算符。比较运算符会产生布尔值,要么是True
要么是False
。
逻辑运算符有三个,分别是and
、or
和not
。and
字面意思是“而且”,所以and
运算符会连接两个布尔值,如果两个布尔值都是True
,那么运算的结果就是True
;左右两边的布尔值有一个是False
,最终的运算结果就是False
。相信大家已经想到了,如果and
左边的布尔值是False
,不管右边的布尔值是什么,最终的结果都是False
,所以在做运算的时候右边的值会被跳过(短路处理),这也就意味着在and
运算符左边为False
的情况下,右边的表达式根本不会执行。or
字面意思是“或者”,所以or
运算符也会连接两个布尔值,如果两个布尔值有任意一个是True
,那么最终的结果就是True
。当然,or
运算符也是有短路功能的,在它左边的布尔值为True
的情况下,右边的表达式根本不会执行。not
运算符的后面会跟上一个布尔值,它的作用是得到与该布尔值相反的值,也就是说,后面的布尔值如果是True
运算结果就是False
,而后面的布尔值如果是False
则运算结果就是True
。
""" 比较运算符和逻辑运算符的使用 Version: 0.1 Author: 骆昊 """ flag0 = 1 == 1 flag1 = 3 > 2 flag2 = 2 < 1 flag3 = flag1 and flag2 flag4 = flag1 or flag2 flag5 = not (1 != 2) print('flag0 =', flag0) # flag0 = True print('flag1 =', flag1) # flag1 = True print('flag2 =', flag2) # flag2 = False print('flag3 =', flag3) # flag3 = False print('flag4 =', flag4) # flag4 = True print('flag5 =', flag5) # flag5 = False print(bool(0)) print(bool(-1)) print(bool("")) age = 20 name ="李四" my_age = age+10 info = "上海" print(my_age) #30 print(info) #上海李四
注释
#后加注释内容 不参与程序运行,方便阅读理解
#用于单选注释
#打印世界你好 print("世界你好") name="python" #赋值python变量给变量name
多行注释以三个单/双引号开始和结尾,可以跨行
''' 用户注册的所有功能 输入用户名 输入密码 输入年龄 ''' name=input("输入用户名") passw=input("输入密码") age=int(input("输入年龄"))
PASS
什么也不做,保持语法的完整性
if 1=1: pass else: pass
字符串格式化
name=input("姓名:") age=input("年龄:") text=name+"的年龄是"+age print(%s的年龄是%s,%(name,age) # s%字符串 d%整数 text="{0}的年龄是{1}岁 ---{0}".format(name,age) text="{xx}的年龄是{ff}岁 ---{xx}".format(name,age) text="{}的年龄是{}岁 ---{}".format(name,age,name) print(f"{name}的年龄是{age}")
for item in range(0,10,3): print(f"第{item}次打印") print("第{0}次打印".format(item))
字符串
V1="zhangsan"
字符串独有功能
v1.功能() #对原来的字符串不影响,生成一个新的值
v1="zhengsan" v2=v1.功能() 变大写: name="root" print(name.upper()) 变小写: name1="ROOT" print(name.lower())
工
列表
元组
字典
评论