Pyhton_25_5_26
Python中的变量的类型不需要再定义变量的时候显式声明,而是依靠初始化语句根据初始化的值的类型来进行确认的。
print(1/2) #结果是0.5,与C、C++不同,整数相除可以是小数
Python中的幂运算符
a = 2**3 # 2的3次方,结果是8。5**2等于25。
类型
type函数
a = 10
print(type(a)) #type函数可获取到变量类型
整数、浮点数类型
Python中int能够表示的数据范围是“无穷”的,int的大小可以根据需要自动扩容,因此Python中没有short、long这种类型
float就是双精度浮点,大小为8字节,没有double
字符串(str)
字符串(str)要用引号括起来(单双引号都可以),好处:
#例子1:使用双引号避免转义单引号
s = "It's a beautiful day."
#这样就不用写成 'It\'s a beautiful day.'#例子2:使用单引号包含双引号(或反过来)
s1 = 'He said "Hello!"'
s2 = "It's a nice day."#如果字符串中单双引号都有使用,用三引号
#三引号支持:使用三个单引号或双引号定义多行字符串时,同样可以灵活处理内部引号:
multi_line = """This string contains 'single' and "double" quotes."""
len函数
内置函数len可求得字符串长度
print(len(s1))
字符串的拼接,注意不能字符串与数字相加,注意只能加,不能减
print(s1 + s2) #得到一个更大的字符串,对原来的字符串没影响
bool类型:只有True、False两个值,大小为一字节
动态类型的核心特点
-
无需显式声明类型
变量在定义时无需指定类型,类型由赋给它的值自动推断:x = 10 # x 是整数(int) x = "hello" # x 变为字符串(str)
-
类型与值绑定,而非变量
变量本身没有固定类型,其类型取决于当前指向的值:a = 3.14 # a 是 float a = [1, 2] # a 变为 list
-
运行时类型检查
类型错误(如对字符串进行数学运算)会在代码运行时才被检测到:x = "10" y = x + 5 # 运行时报错:TypeError(字符串和整数不能相加)
单行注释(#)、文档注释(''' 文档 ''' """ 文档 """);批量注释:选中多行后ctrl+/ (再按一次取消注释)
f-strings(格式化字符串字面量):直接在字符串前加 f
,变量用 {}
包裹。
基本用法
name = "David"
age = 30
# 直接嵌入变量
s1 = f"{name} is {age} years old." # David is 30 years old.
# 支持表达式和函数调用
s2 = f"Next year, {name} will be {age + 1}." # Next year, David will be 31.
s3 = f"Uppercase: {name.upper()}" # Uppercase: DAVID
python 使用 input 函数, 从控制台读取用户的输入.
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')
注意:
input 的返回值就是用户输入的内容,其实是字符串类型,如果要用取到的内容进行算术计算,先把读到的 str 转化为(int a = int(a))
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
print(f'a + b = {a + b}')
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a) #类型转化
b = int(b)
print(f'a + b = {a + b}')
如何str转换int? int()
如何int转换str? str()
如何str转换float? float()
运算符
算术运算符( + - * / % ** // )
顺序:先算乘方 再算乘除 再算加减 不能除0
1、运行时出现的异常,也叫抛出异常
2、整数 / 整数 如果除不尽,得到的就是小数,而不会截断的情况
3、% 是求余数
print(7 % 2) #结果为1.
4、 ** 表示乘方运算(也能支持开方)
print(4 ** 2) #4的二次方,结果为16
print(4 ** 3) #4的三次方,结果为64
print(4 ** 0.5) #4的0.5次方,结果为2
5、 // 是取整除法,也叫地板除. 整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. )
print(7 // 2) #结果为3print(-7 // 2) #结果为-4
关系运算符(< <= > >= == !=)
(1) 关系运算符表达式的类型为bool. 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False
(2) 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较
a = 'hello'
b = 'world'
print(a < b) #True
print(a <= b) #True
print(a > b) #False
print(a >= b) #False
print(a == b) #False
print(a != b) #True
字符串比较大小, 规则是 "字典序",一个单词在词典上越靠前, 就越小. 越靠后, 就越大;
== 或者 != 是对字符串内容判定相等与否
(3) 对于浮点数来说, 不要使用 == 判定相等.因为浮点数在计算机中的表示并不是精确的, 在计算过程中容易出现非常小的误差, 但是 == 是锱铢必较的, 仍然会导致 == 的结果为 False.
错误的比较方式: 严格比较相等
print(0.1 + 0.2 == 0.3) #结果为False
正确的比较方式: 不再严格比较相等了, 而是判定差值小于允许的误差范围.
a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001) #结果为True
注意:print(-0.000001 < (a - b) < 0.000001) Python中支持这种连续小于的写法
验证有微小误差:
print(0.1)
print(0.2)
print(0.3)
print(0.1 + 0.2)
逻辑运算符(and or not)
and 并且. 一假则假
or 或者. 一真则真
not 逻辑取反. 真变假假变真
a = 10
b = 20
c = 30
print(a < b and b < c)
print(a > b or b > c)
print(not a < b)
注意:a < b and b < c 这个操作等价于 a < b < c .
关于短路求值
对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.
对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.
赋值运算符(=)
链式赋值
a = b = 10 #不建议使用
多元赋值
a, b = 10, 20
交换两个变量
基础写法
a = 10
b = 20tmp = a
a = b
b = tmp
基于多元赋值写法
a = 10
b = 20a, b = b, a
复合赋值运算符(+= -= *= /= %= **= //=)
Python 中则不支持 ++ -- 这样的自增/自减运算符.
注意:++a之所以不会报错是因为Python解释器把+当成了正号. 同理--a,负负得正最终值相当于a没变. 但后置的a++、a--都会报错.