python笔记2-变量的创建
变量与简单数据类型
变量
变量的创建
变量的概念
创建变量
变量名 = 变量值
=
等号两边留一个空格
多个变量赋值

price = 10.5
weight = 7.5
money = price * weight
print("总共消费了 %.2f 元" % money)
变量的修改
创建变量后,可以在代码中重新赋值。
year = 2023
print(year)
year = 2024
print(year)
money = "十元"
print(money)
money = 10
print(money)
python对数据类型不像java严格
price = 10.5
weight = 7.5
money = price * weight
print("总共消费了 %.2f 元" % money)
money = money - 5
print("优惠后,总共消费了 %.2f 元" % money)
常量:程序在运行过程中,值永远不变的量。
python没有专门的常量类型,一半约定使用大写表示常亮。
变量的命名
标识符:程序员定义的变量名,函数名。
名字需要见名知意。
这个是长江 市长 江大桥
还是长江市 长江大桥
?
a = '长江市长江大桥'
bridge = '长江市长江大桥'
标识符:
关键字:
关键字,使用以下函数可以打印出来
import keyword
print(keyword.kwlist)
[
'False','None', 'True','and',
'as', 'assert', 'async', 'await',
'break','class','continue', 'def',
'del','elif','else','except',
'finally','for','from','global',
'if','import','in','is',
'lambda', 'nonlocal', 'not', 'or',
'pass','raise','return','try',
'while','with', 'yield'
]
变量命名规则:
python中,变量名有两个或多个单词组成时,可以按照一下方式命名:
下划线命名法
每个单词都用小写
单词与单词之间使用下划线连接:first_name,last_name
驼峰命名法
firstName,lastName
FirstName,LastName
变量的数据类型
python中定义变量不需要指定类型(在其他很多高级语言中都需要)
可以使用type
和isinstance
来测试和判断数据类型
a = '1234absd'
print(type(a))
print(isinstance(a, str))
a = 1234
print(type(a))
print(isinstance(a, str))
简单数据类型
整型(Integers)
python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一模一样。
# 整数的变量
num = 10
print(num)
# 负数
num2 = -10
print(num2)
# 查看变量的数据类型
print(type(num2))
# 输入一个数字计算
num3 = input("请输入一个数字:")
print(type(num3))
num3 = int(num3) + 10
print(num3)
浮点数(Floating point numbers)
由整数部分和小数部分组成。
注意:运算可能有四舍五入的误差。
# 浮点数的计算
import math
n1 = 0.1234
print("n1的数据类型", type(n1))
n2 = 0.2
print(n1 + n2)
n3 = 0.1
print(n2 + n3)
# 四舍五入round
n4 = round(n3 + n2, 2)
print(n4)
n5 = 0.256
print(n3 + n5)
n6 = round(n3 + n5, 2)
print(n6)
# 取整
n7 = 12.1
n8 = 145.232352
n9 = n7 + n8
# 向上取整
print("结果是:", n9)
ceil = math.ceil(n9)
print("向上取整的结果是", ceil)
floor = math.floor(n9)
print("向下取整的结果是", floor)
布尔型(Boolean)
Boolean类型的变量只有True,False
两种值,首字母大写。
作为真假的判断。
在python中,能够解释为假的值有
a = True
b = False
c = 0
d = None
e = 0.0
print("a的数据类型:", type(a))
print("b的数据类型:", type(b))
print("c的数据类型:", type(c))
print("c是不是int数据类型:", isinstance(c, int))
print("d的数据类型:", type(d))
print("e的数据类型:", type(e))
字符串(String)
字符串概念
s1 = 'hello'
print(s1)
s2 = "hello"
print(s2)
s3 = '''2024
hello
word
'''
# 如果三个单引号在单独一行,该字符串首尾皆有一空行
print(s3)
s4 = "It's a hat"
print(s4)
# 转义字符\
s5 = '1234\'hhh\"6666'
print(s5)
字符串运算
字符串加法
字符串拼接
print('====字符串拼接=====')
# 字符串拼接
print(s1 + s3)# hello2024
print(s1 + s4)
print('====字符串与数字拼接=====')
n = 5
# print(s1 + n) #字符串与数字不能相加,要类型转换
print(s1 + str(n))
字符串乘法
字符串重复
print('====字符串乘法=====')
print(s1 * 2)# hellohello
print('s1' * 2)# s1s1
print(2 * s1)# s1s1
字符串索引
索引:可以使用索引获取一个字符串中指定位置的字符,索引计数从0开始。
s = "hello,word"
print("第一位", s[0]) # 第一位 h
print(s[4])# o
print(s[-1])# d
# 切片 变量名[起始索引:结束索引+1:步数],包头不包尾
# 步数不写,默认为1
# 起始索引,默认为0,也可以不写
# 结束索引,默认为-1,也可以不写
s = "hello,word"
print("=====切片====", )
print(s[0:4]) # hell
print(s[1:4]) # ell
print(s[6:9]) # wor
print(s[0:9]) # hello,wor
print(s[0:9:1]) # hello,wor
# 第三个参数表示隔几个取
print(s[0:9:2]) # hlowr
s2 = '123456789'
print(s2) # 123456789
print(s2[0:9:2]) # 13579
print(s2[:9:2]) # 13579
print(s2[1:9:2]) # 2468
print(s2[::2]) # 13579
# 字符串反转
s2 = '123456789'
print("=====字符串反转====", )
print(s2) # 123456789
print(s2[-1:-10:-1]) # 987654321
print(s2[::-1]) # 987654321
print(s2[-1:-len(s2):-1]) # 98765432
数据类型转换
转换为整数int
print("===转换为整数int===")
# 字符串str-->整数int
# 纯数字才能转
s = '2024'
n = int(s)
print(type(s), type(n)) # <class 'str'> <class 'int'>
# 浮点数float--->整数int
s1 = 2.23
print(int(s1)) # 2
# bool--->整数int
s2, s3 = True, False
print(int(s2), int(s3)) # 1 0
转换为浮点数float
print("===转换为浮点数float===")
# str -->float
print(float(s)) # 2024.0
s4 = 23.33
print(float(s4)) # 23.33
# int -->float
n = 2024
print(float(n)) # 2024.0
# bool --> float
print(float(s2), float(s3)) # 1.0 0.0
转换为布尔bool
print("===转换为布尔bool===")
# str-->bool
s = 'sdw33'
print(bool(s)) # True
s1 = ""
print(bool(s1)) # False
# int -->bool
n = 1
print(bool(n)) # True
n = 0
print(bool(n)) # False
# float-->bool
f = 3.0
print(bool(f)) # True
f = 0.0
print(bool(f)) # False
转换为字符串str
print("===转换为字符串str===")
# int -->str
n = 5
print(str(n)) # 5
print(type(str(n))) # <class 'str'>
# floar -->str
f = 5.3
print(str(f)) # 5.3
print(type(str(f))) # <class 'str'>
# bool -->str
a = True
print(str(a)) # True
print(type(str(a))) # <class 'str'>
进制的转换
print("===进制转换===")
s = '101'
print(int(s, 2)) # 5
s = '10a'
print(int(s, 16)) # 266
s = '10'
print(int(s, 8)) # 8
s = '10'
print(int(s, 10)) # 10
小整数地址问题
对于小整数,python会使用“小整数缓存”的机制来优化内存使用。这个缓存池中的整数对象会被重复利用,而不是为每个新创建的小整数分配新的内存空间。这样可以减少内存分配和释放的开销,提高程序性能。
id()
来获取对象的唯一标识符,这个标识符通常可以用来近似的表示对象的内存地址。但是请注意:这个标识符并不是真正的内存地址,而是有python解释器生成的一个唯一标识符,用于区分不同的对象实例。
a = 3
b = 3
c = 200
d = -4
e = -4
f = -6
print(id(a))# 140720363534840
print(id(b))# 140720363534840
print(id(c))# 140720363541144
print(id(d))# 140720363534616
print(id(e))# 140720363534616
print(id(f))# 1932368806288
建的小整数分配新的内存空间**。这样可以减少内存分配和释放的开销,提高程序性能。
id()
来获取对象的唯一标识符,这个标识符通常可以用来近似的表示对象的内存地址。但是请注意:这个标识符并不是真正的内存地址,而是有python解释器生成的一个唯一标识符,用于区分不同的对象实例。
[外链图片转存中…(img-qduEW1t4-1723372453022)]
a = 3
b = 3
c = 200
d = -4
e = -4
f = -6
print(id(a))# 140720363534840
print(id(b))# 140720363534840
print(id(c))# 140720363541144
print(id(d))# 140720363534616
print(id(e))# 140720363534616
print(id(f))# 1932368806288
作者:tuchaobo