python中指定变量为1byte_Python基础(1)——变量和数据
类型[xiaoshun]
⽬录
⼀、变量
1.概述
Variables are used to store information to be referenced(引⽤)and manipulated(操作) in a computer program.
2.声明
(1)命名规则
变量名只能是字母、数字或下划线的任意组合;
第⼀个不能是数字
关键字不能作为变量名
(2)定义
name1 = 'Lu'
name2 = name1
name1 = 'MJJ'
print(name1, name2)
-->:
MJJ Lu
(3)删除
name1 = 'Lu'
del name1
print(name1)
-
->:
NameError: name 'name1' is not defined
python格式化输出format变量的⽣命周期:⽆指向时,才会在内存中被回收。
⼆、数据类型
1.数字
(1)分类
Python ⽀持三种不同的数值类型:
整型(Int) : 不带⼩数点。Python3 整型是没有限制⼤⼩的,可以当作 Long 类型使⽤,Python3 没有 Python2 的 Long 类型;
浮点型(float):浮点型由整数部分与⼩数部分组成,浮点型也可以使⽤科学计数法表⽰(2.5e2 = 2.5 x 102 = 250);
复数( (complex)) - 复数由实数部分和虚数部分构成,可以⽤a + bj,或者complex(a,b)表⽰, 复数的
实部a和虚部b都是浮点型。
(2)类型转换
int(x) 将x转换为⼀个整数。
float(x) 将x转换到⼀个浮点数。
complex(x) 将x转换到⼀个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到⼀个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。Python中复数不⽀持强转,但可以通过real和image⽅法获取到实部和虚部的值。
(3)运算
不同类型的数混合运算时会将整数转换为浮点数。
/:总是返回⼀个浮点数。
//:得到的并不⼀定是整数类型的数,它与分母分⼦的数据类型有关系。
7 // 2=3, 7.0 // 2=3.0,7 // 2.0=3.0
**:幂运算。
%:取余。
在交互模式中,最后被输出的表达式结果被赋值给变量 "_"。“_”应该为只读变量。
(4)数学函数
abs(x):返回数字的绝对值,如abs(-10) 返回 10。
max(x1, x2,...) :返回给定参数的最⼤值,参数可以为序列。
min(x1, x2,...) :返回给定参数的最⼩值,参数可以为序列。
pow(x, y):x**y 运算后的值。
sqrt(x) :返回数字x的平⽅根。
(5)随机数函数
2.字符串
(1)切⽚,索引,拼接
str[a:b],str[a:b:c]
a,b为参数。从字符串指针为a的地⽅开始截取字符,到b的前⼀个位置(因为不包含b);
如果a,b均不填写,默认取全部字符;
如果a填写,b不填写(或填写的值⼤于指针下标),默认从a开始截取,⾄字符串最后⼀个位置;
如果a不填写, b填写,默认从0位置开始截取,⾄b的前⼀个位置;
如果a为负数,默认从尾部某⼀位置,开始向后截取,最后⼀个位置为-1
如果a>=b, 默认输出为空。
[a:b:c] 表⽰的是从头到尾,步长为c。第⼀个冒号两侧的数字是指截取字符串的范围,第⼆个冒号后⾯是指截取的步长。
[::-1]:字符串倒序
万恶的字符串拼接:
python中的字符串在C语⾔中体现为是⼀个字符数组,每次创建字符串时候需要在内存中开辟⼀块连续的空,并且⼀旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现⼀次就会在内从中重新开辟⼀块空间。
字符串是⼀种不可变数据类型,不可以改变。可以⽤截取的⽅式,拼接的⽅式重新组合成新的字符串。
str1[0] = "H"
TypeError: 'str' object does not support item assignment.
(2)转义
\(在⾏尾时):续⾏符。代码过长时,可以⽤续航符进⾏换⾏编写,且续⾏符之后,续⾏符后⾯什么都不能 出现(包括空格),必须换⾏(必须换⾏写内容)
a = "ajkfhajkfhkjahfkahfkhakfhkdafafafaddafafdafafadfafafafafafadefgg" \
"hfakjfhkah"
\\ 反斜杠符号,\' 单引号,\" 双引号:
print(str1 + "\\")print("\'" + str1 + "\'")
\a 响铃,命令⾏交互模式中可以实现。
\b 退格(Backspace),\000 空,\n 换⾏,等
(3)运算
“+”:拼接
“str*number”:重复输出number次str
[]:获取索引
[:]:截取,切⽚,左闭右开
in,not in :成员逻辑运算符
R/r:原始字符串 - 原始字符串:所有的字符串都是直接按照字⾯的意思来使⽤,没有转义特殊或不能打印的字符,引⼊⽂件路径时常⽤。
print(r"hello \' word!")
print("hello \' word!")
(4)格式化输出
%和format()函数使⽤、f-string字⾯量格式化字符串,是新的格式化字符串的语法。
(5)字符串操作
str.capitalize(),⽆参数,将字符串的第⼀个字符转换为⼤写,其余转换成⼩写。⾸字符为⾮字母,则不转换,其余转为⼩写。
<(width[, fillchar]),返回⼀个指定宽度且原str居中的新字符串,fillchar 为填充的单个字符,默认为空格。
参数:width,宽度;fillchar,能且只能为⼀个字符。
注意:
a、如果 width ⼩于字符串宽度直接返回字符串,不会截断;
b、fillchar 只能是单个字符。
str1 ='python' * 3
unt('p'))
unt('p', 1)) # 包含起始位置
unt('p', 1, -6)) # 不包含结束位置
-->:
3
2
1
str.join(sequence),将序列seq中的元素以指定的字符串str连接返回⼀个新的字符串。
参数:seq,元组、列表、字典、字符串。字典只能连接键值key。
str1 = '\t'
str2 = 'python'
list1 = [i*2 for i in str2]
print(str1.join(str2))
print(str1.join(list1))
-->:
python
ppyytthhoonn
str.split(str="", unt(str)),指定分隔符对字符串进⾏切⽚。常⽤作数据的分析提取。
参数:str,分隔符,默认为所有的空字符,包括空格、换⾏(\n)、制表符(\t)等;num,分割次数。默认为 -1, 即分隔所有,分割为num+1 个⼦字符串。
返回值:元素为字符串的列表。
爬⾍时,图⽚名获取:
url_str = "www.baidu/python/image/123456.jpg"
print(url_str.split('/')[-1])
-->:
123456.jpg
str.strip([chars]),移除字符串头尾指定的字符(默认为空格)或字符序列chars,返回新字符串。
注意:
a、该⽅法只能删除开头或是结尾的字符,不能删除中间部分的字符。
b、如果不带参数,默认是清除两边的空⽩符,例如:/n, /r, /t, ' '等
str1 = '\tpython\t' * 3
print(str1.strip())
-
->:
pythonpythonpython
c、带有参数的时候,这个参数可以理解⼀个要删除的字符的列表,删除多个字符时,只要头尾有对应其中的某个字符即 删除,不考虑顺序,直到遇到第⼀个不包含在其中的字符为⽌。
str1 = 'a111123\t132231b213321312==3213122132*31123132'
print(str1.strip('123ab\t'))
# 等价于
for i in str1:
if i in '123ab\t':
str1 = str1.strip(i)
-->:
==3213122132*
(待补充)
3.列表
(1)基况
列表元素类型可以不⼀致,和C数组不⼀样(类似ndarray)。列表元素可以修改,所以做列表有关操作时,要注意原列表的元素是否被更改了(深浅拷贝)。
list1 = [i for i in range(10)]
list2 = list1 # list2 = py()
print(list1, list2)
list2[0] = 100
print(list1, list2)
-->:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[100, 1, 2, 3, 4, 5, 6, 7, 8, 9] [100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(2)基操
下标索引查或者更改(列表可变)
截取、切⽚:[:];间隔截取:[:::]
拼接组合:“+”;重复:“*”
成员逻辑判断:in;not in
(3)列表嵌套
不⽀持花切,只能分层操作。
list1 = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(list1[1:][:])
print(list1[[0], [0]])
-->:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论