变量名称
Python没有关键字来表示常量,只能靠程序员自觉。
申明变量时不需要有变量类型,变量命名要求如下:
- 只能包含数字、字母、下划线_
- 不能以数字开头
- 不能有空格
- 区分大小写
- 关键字不能作为标识符
- 不要使用Python内置函数作为自己的标识符
![[Pasted image 20230213163313.png]]
# Checking data types
print(type(10)) # Int
print(type(3.14)) # Float
print(type(1 + 3j)) # Complex
print(type('Asabeneh')) # String
print(type([1, 2, 3])) # List
print(type({'name':'Asabeneh'})) # Dictionary
print(type({9.8, 3.14, 2.7})) # Set
print(type((9.8, 3.14, 2.7))) # Tuple
注释
单行注释用#,多行用三个双引号或单引号
数据类型
整型、浮点型和字符串数据类型
整数类型
都是int,十进制,可以很大,取决于及其硬件,没有long和short类型
- 二进制:0b或0B
- 八进制:0o或0O
- 十六进制:0x或0X
浮点数
python支持float,双精度,也可用科学计数法来表示
如 3.75e3 == 3750.0
浮点数的加、减法可能会不精确,可以导入模块来处理
浮点型和整型可以相等
42 != ‘42’ 42 == 42.0 42 == 0042.000
字符串
- 普通字符:可用单引号或双引号来表示:‘a’、‘hello!’、‘123 asha’、‘’
- 原始字符串(raw string):在不同字符串前面加r,这样的话字符串中的特殊字符不会转义
- 长字符串:包含了换行缩进等排版字符,可以用三重单引号或三重双引号包裹,这样的话会输出换行
字符串的连接
Python中使用 + 号可以实现对于多个字符串的连接:
print(‘123 ‘+’’+‘1ww ad’) 输出结果为 ‘123 1ww ad’
但是请注意不能 ‘a’+1 ,这是无效的,Python不能自动进行类型转换。
字符串的复制
Python中使用 ==*==号可以实现对于字符串的复制:
print('123 ’ * 2) 输出结果为 ‘123123’
注意:*号可以用在两个数字之间或一个字符串和整型值之间,其余不可。
转义字符和原字符
转义字符
- \t :表示用空格填充每组剩下来的字符(每四个为一组,即制表位)
• print(“hello world”) = hello world(之间三个空格)
- \r :将光标回退到本行开头输入
• print(“hello\r”) = hello
• print(“hello\rr”)
- \b:回退一格
• print(“hello\rworld”) = hellword
原字符 = 禁用转义字符
即不希望使用转义字符,而是使用原字符,可以通过在字符串之前加r或R
• print(r"hello\nworld") = hello\nworld
- print(r’hello\nworld\(这里表示最末尾有一个反斜线)') 会报错,因为末尾会把’变为原字符,但是偶数个反斜杠可以
复数类型
1+2j表示实部是1,复部是2。
可以利用type查看数据类型:
布尔类型
bool是int的子类,任何数据类型都可以通过bool()转化为布尔值(True或False)。
- 有东西/值为True
- 无东西/值为False,None、False、0、0.0、0j、“”、‘’、[]、{}和()都是False
数据类型转化
显示转化
利用int()和float()
隐式转化
布尔值会将True和False转为1/0或1.0/0.0
Python基础函数
print()
print()可以输出数字、字符串或含有运算符的表达式,但表达式需为正确有效的值,如 2+’as’ 就不可以。
python是依靠缩进来区分代码的层级的,但是也可以加上分号提高代码的可读性。
format()
‘{key : fill, align, sign,0,width, precision, type}’.format(para1…)
参数介绍:
- fill:用来指定填充字符,默认为空格
- align:指定对齐方式:>为右对齐,<为左对齐,^为居中对齐
- sign:指定是否保留正负号:+为保留正负号,-为仅保留负号
- 宽度前面如果加0则表示用0填充
- width:指定宽度
- precision:指定精确度
- type:指定类型,如b为二进制,x为十六进制
函数运用: - 可以用0,1…来表示填充的内容
- 也可以用关键词来填充
- 填充物、对齐和宽度
- 填充物(fill):填充的物品,此处是用以填充的字符,数字等,值得注意的是填写引号、括号等需要用\转义符转义。
- 对齐(align):对齐方式有三种居中(^)、>为右对齐、<为左对齐
- 宽度(width):填入参数为数据即所占位置多少的参数
- 用等号填充
- sign参数保留正负号
- 用引号填充
- 指定精度(.nf)、分隔符(,)、进制(o,b,d,x)
- o,b,d,x:二进制、八进制,十进制、十六进制
input()
input()函数具有输出的功能,会等待用户输入文本,并按回车键(不包含).
输入值为str,将会保存为字符串形式,可以用int或float转化。
a = input(“what do you want?”)
len()
len(‘ahs a’) 的值为5,len(“”)==len(‘’)==0
len函数允许传入字符串或包含字符串的变量。
str()、int()和float()
- str函数可以把括号中的转化为字符串形式
- str(29) == ‘29’
- str(-2.9) == ‘-2.9’
- int函数可以把字符串、浮点数转化为整数。但是不能将一个求值为整数的值给int,如 two=2,int(‘two’) 或 int(‘2.1’)
- int(‘-9.9’) 会报错
- int(‘-99’) == -99
- int(1.99) == 1
- int(1.01) == 1
- float函数可以把字符串、整数转化为浮点数
- float(‘-3.14’) == -3.14
- float(‘-1’) == -1.0
字符串查找
str.find(sub[,start[,end]])
在索引start到end之间查找子字符串sub
- 如果找到返回最左端位置的索引,如果没有找到返回-1
- 如果start省略说明查找从字符串头开始
- 如果end省略说明查找到字符串尾结束
- 如果全部省略就是查找全部字符串
str.rfind(sub[,start[,end]])
- 与find方法类似,区别是如果返回找到的最后一个位置的字符串索引值(但是返回的也是这个字符串的最开始的位置)
- 若没有找到就返回-1
- 如果在查找的范围内只找到一处子字符串,那么这里find和rfind方法返回值相同的
- 字符串索引是从0开始
round()
round(number,digits) 将返回x的值,该值四舍五入到小数点后的n位数字。
- 参数:
- digits>0,四舍五入到指定的小数位
- digits=0, 四舍五入到最接近的整数
- digits<0 ,在小数点左侧进行四舍五入
- 如果round()函数只有number这个参数,等同于digits=0
- 四舍六入规则:
- 要求保留位数的后一位<=4,则不进位,如round(5.214,2)保留小数点后两位,结果是 5.21
- 要求保留位数的后一位“=5”,且该位数后面没有数字,不进位,如round(5.215,2),结果为5.21。==但注意:在python 3中,对于X.5,当X为偶数时,不进位,为奇数时进位。如round(1.5)=2 round(2.5)=2 ,即“奇进偶不进”;==在python 2中,会保留距离0更远的数值;不过具体的规则还和计算机精度有关。
- 要求保留位数的后一位“=5”,且该位数后面有数字,则进位,如round(5.2151,2),结果为5.22
- 要求保留位数的后一位“>=6”,则进位。如round(5.216,2),结果为5.22
除非对精度没有什么明确要求,否则尽量避免用round()函数。
使用math模块中的一些函数,比如math.ceil(天花板除法,向上取整),math.floor()(向下取整,int是截断,区别是负数时floor远离0,int靠近0)。
- python自带整除,python2中是/,3中是//,还有div函数。
- 字符串格式化可以做截断使用,例如 “%.2f” % value(保留两位小数并变成字符串……如果还想用浮点数请披上float()的外衣)
price = 12.567
print(f"苹果的价格是{price:.2f}") # 苹果的价格是12.57
type()和id()
type()会输出变量类型,<class ‘str’>…
id()会输出该元素的地址,123131332…,变量多次赋值之后,会指向新的空间