那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程,他们只是觉得这是一件有趣的事情!
hello!大家好,我是小y同学,这一期,小y将为大家介绍一些简单的python变量和字符串基础知识!
一、变量
-
变量是编程中最基本的存储单位,变量会暂时性地存储你放入的东西。这里的变量不局限于数字,他又很多类型:数值型,字符串类型,以及后面学到的常用的列表数据类型、字典数据类型等等。
例子:
标识符=值
answer = 42
answer是标识符,也是变量名,变量命名常用的有驼峰命名法,一般小y喜欢使用下划线替代空格,用英文短语命名
- 变量的命名规则
- 变量名只能包含数字字母和下划线,变量名不能是数字开头。
- 变量名不能包含空格,可以使用下划线来分隔其中的单词
- 不要将关键字和函数名用作变量名,如果有重名我们可在后方加入下划线,不过小y不怎么推荐这么做
- 变量名需要简短又具有描述性,短小精炼,如:name比n好,student_name比s_n好,name_length比length_og_persons_name好。
- 慎用小写字母l和大写字母O,很容易被人看错数字1和0,小y之前就被坑到过!!!
二、print()
-
打印是python中最常用的功能,顾名思义,我们可以简单的将print()这个功能理解为展示打印的结果。使用方法是将要打印查看的结果对象塞进括号内。
-
打印这个功能在我们调试程序的时候还是蛮有用的:
-
我们可以通过
print(content)
直接查看content的内容(可以方便我们日后使用正则表达式提取,或者打印某些标识符代表程序经过这里等等) -
使用
print(id(content))
可以查看content在内存中的地址 -
使用
print(type(content))
可以查看变量的类型(是字符串(str)类型,还是整型(int),还是以后会遇见的列表(list)类型等,只有我们知道了变量的类型后,我们才能正确的去使用他们) -
…
-
总之功能挺强大的!
例如:a = 1 # 给a赋值数字1 b = '2' # 给b赋值字符串2 print(a) # 打印a的值 print(id(a)) # 打印a的内存地址 print(type(a)) # 打印a的类型 print("**********") # 分行 print(b) print((id(b))) print(type(b))
运行结果:
此处要注意我们给a赋值的是数字1,给b赋值的是字符2,数字可以进行正常的数学运算,字符串也可也加减运算(表示字符串的个数),但是字符串不可以进行数学运算
-
三、字符串
1、字符串是什么
很简单的说,字符串就是:
2、字符串的基本用法
-
字符串的合并:
首先先让大家看一下面这段代码:what_he_does = ' plays ' his_instrument = 'guitar' his_name = 'Robert Johnson' artist_intro = his_name + what_he_does + his_instrument print(artist_intro)
`运行结果:
-
字符串和数值型变量的合并(间接的字符串与字符串合并)
前面小y已经说过,字符串和数值型变量合并会报错,但是我们可以通过强制转换将数值型变量转成字符串类型,方法十分简单,只需要str(数值型变量)
就可以将数值型变量转化为整型,同样,字符串类型也可也转化为数值型:使用float(字符串变量)
就可以将字符串变量转化为浮点型数值数据,使用int(字符串变量)
就可以将字符串类型数值转化为整型。
错误合并截图:
小y相信英语ok的友友们已经能看出这报错提示了:类型错误:+ 不支持的操作数类型:“int”和“str”。
但是,我们可以通过强制转换来进行合并:
a = 1 # 给a赋值数字1 b = '2' # 给b赋值字符串2 print(str(a) + b) print(type(str(a) + b)) # 这里打印数据类型
运行结果:
注意字符串的合并并不是数值的加减,所以这里结果不是3,另外我们从答应出来的变量类型也可以很清楚的看到是str(字符串)类型。
读到这儿,你应该明白了为什么开头高亮显示间接的字符串与字符串合并了吧,就是“你不是字符串类型,不可以和我加,我给你转成字符串类型,你就可以和我加了”
-
字符串的乘法
前面说过,字符串和字符串之间不能相乘,但是,字符串和数字之间就可以相乘:# 字符串之间可以相乘 word='word'*3 print(word) # 当对象是字符串时,len () 函数返回字符串中的字符数 len返回的是int类型 word = 'a loooooong word' num = 12 string = 'bang!' total = string * (len(word) - num) print(total)
运行结果:
3、字符串的分片与索引
-
字符串可以通过string[x]的方式进行索引、分片,字符串的分片实际上可以看作是从字符串中找出来你想要截取的东西,复制出来一小段你想要的长度,存储到另外一个地方,而不会对字符串进行改动。
-
小y觉得这个十分的实用:比如说你做一个文件读取数据的小项目,文件里面每一行对应位置的数值(这里的数值实际上是字符串)都是一种类型,你需要提取出来,就可以逐行读取文件,然后对行进行切片,存储等
-
先请大家看一下下面的代码:
name = 'My name is Mike' print(name[0]) print(name[-4]) print(name[11:14]) print(name[11:15]) print(name[5:]) print(name[:5])
运行结果:
-
这里有一些小y自己的总结如下:
- 字符编号从0开始从第一个字符开始
- 编号从-1开始从最后一个字符开始
- [a:b]表示从第a个字符开始,到第b个字符结束,但是并不包括b字符!!!
- [a:]表示从编号a字符开始,一直到结束
- [:b]表示从编号0字符开始,但是不包括b字符
-
在实际的字符串分片应用过程中,还可以使用字符串的分片来读取文件名的后缀,或者删除文件名的后缀,获取无后缀的文件名:
file_name = 'test.mp3' name = file_name[:-4] # 获取文件的无后缀名 file_class = file_name[-4:] # 获取文件的后缀 print(name) print(file_class)
运行结果:
怎么样,还是很实用的吧!!!
4、字符串的方法
-
python是可以面向对象进行编程的语言(根据程序的设计方法可以有面向对象编程和面向过程编程),而对象拥有各种功能、特性,专业术语称——方法。例如:我们假定日常生活中的车是对象,汽车拥有很多特性和功能,其中“开”就是汽车的一个重要功能。
-
replace()方法
先看代码:phone_number = '1386-666-0006' hiding_number = phone_number.replace(phone_number[:9], '*' * 9) print(hiding_number)
运行结果:
怎么样,一个简单的输入密码遮盖效果就有了!
replace(a,b)遮挡,a表示要被替换掉的部分,b表示用什么替换
-
find()方法
先看代码:search = '168' num_a = '1386-168-0006' num_b = '1681-222-0006' print(search + ' is at ' + str(num_a.find(search)) + ' to ' + str(num_a.find(search) + len(search)) + ' of num_a') a = num_a.find(search) print(type(a))
运行结果:
find方法返回的是目标字符串(search)在字符串中的位置,返回的是整型数据类型。(注意是从0开始数)
-
除了以上所述,还有以下这么多的方法共大家尝试
name.title()# 以首字母大写的方式显示每个单词 name.upper()# 字符串全小写 name.lower()# 字符串全大写 name.rstrip()# 去除末端多余空白 name.lstrip()# 去除首端多余空白 name.strip()# 去除首尾空白
其中name代表的是目标字符串
5、字符串格式化
-
使用format方法
先看代码:print('{} a word she can get what she {} for.'.format('with', 'came')) print('{preposition} a word she can get what she {verb} for.'.format(preposition='with', verb='came')) print('{0} a word she can get what she {1} for.'.format('with', 'came'))
运行结果:
这里我们通过使用format方法,就可以实现字符串的填空,这一点在后续也会用到很多
-
f格式化
除了使用format方法以外,我们通过字符串前面加上f也可也达到同样的效果a='with' b='came' print(f'{a} a word she can get what she {b} for.')
运行结果:
怎么样,是不是一模一样!
至此,小y已经向你介绍了简单的python字符串与变量知识啦!
不足之处,希望友友们可以多多指教!另外,码字不易,希望友友们可以给个点赞、收藏+关注,给小y更多的创作动力!😜😜😜