笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章欢迎转载,转载请标明出处。如果喜欢请点赞+关注,感谢支持!
最近的一篇《避雷!零基础菜鸟如何快速上手Python》文章->传送门,得到了很多朋友的点赞和收藏,那么这一篇《关于运算符和字符串那些不为人知的事》也希望能够帮助到大家。本讲内容的思维导图在文章的最后面,需要的朋友记得保存。
目录
关于运算符和字符串那些不为人知的事
一、上一篇内容回顾
- Pycharm使用的重点:千万不要选virtualenv,避开雷区
虚拟环境会导致terminal前面有个括号,意味着进入到了虚拟环境,先不涉及虚拟环境。
提问:那如果不确定是否选择了virtualenv虚拟环境,我们怎么去验证是虚拟环境还是系统环境呢?
步骤如下:
settings
Project
Project Interpreter
带括号是虚拟环境
不带括号是系统环境
现阶段暂时不要涉及到虚拟环境,关于虚拟环境的用法后期会再详细讲解。
1.1 回顾标识符
变量命名规范
- 1.字母数字下划线
- 2.不能数字开头
- 3.不要使用关键字
错误时会出现红色波浪线
- 4.见名知意(重要,需要多练习,通过名字能知道后面数据代表什么。这个真的很重要!)
1.2 注释
#号 单行注释
三引号 """
多行注释
"""
ctrl + / 注释快捷操作
1.3 简单的内置函数
print() 打印
input() 获取用户输入
1.4 数据类型
int整形
float浮点数
str字符串
bool布尔型
查看是什么数据类型用type()函数来确认
#type()函数用法
str_abc = 'abc'
print(type(str_abc))
print(str_abc)
<class 'str'>
abc
1.5 数据类型转换
数据类型后面加个括号就是数据类型的转换,不是所有类型之间都可以相互转换。
比如:字符串转换为整形——不一定
可以转换:
#数据类型转换
str_demo = '123'
print(int(str_demo))
print(type(str_demo))
print(str_demo)
123
<class 'str'>
123
数字就可以完成转换,而不可以转换的情况:
#数据类型转换
str_demo = 'abc'
print(int(str_demo))
print(type(str_demo))
print(str_demo)
Traceback (most recent call last):
File "E:/MyLife/demo.py", line 29, in <module> print(int(str_demo))
ValueError: invalid literal for int() with base 10: 'abc'
- 数据转换重点内容
布尔转换是重点
以下情况bool转化为False,意思为空或者0:
- bool(1) True
- bool(0) False
- bool(-1) True
需要注意的是 bool(" ") True 空格是有意义的,这个是python的坑:
#布尔数据类型转换
print(bool(''))
print(bool(' '))
False
True
bool("") False 没空格是False!
二、 运算符
运算符就是算术运算符,包括加减乘数:
- +加法
- -减法
- *乘法
- /除法
需要注意是除法,得到的是浮点数。
小技巧——这里有个pycharm的小技巧,打红色断点后,右键点debug,可以查看数据类型:
为什么除法得到的不是整数?
因为除法会遇到除不尽的情况,所以使用了除法数据类型会转化为浮点数。
需要注意:被除数不能为0(小学数学知识点,别问我为什么= =)
幂运算
** 次方运算
整除
// 15 // 2 取整数部分 等于7
重点:取余数,专有名词为模运算
h = 15 % 2
模运算经常用来进行奇数偶数判断:
x%2的值是0,说明x是偶数
x%2的值是1,说明x是奇数
a = input('请输入数字:')
print(int(a) % 2)
如果得到的数字是0,就是偶数,1就是奇数
2.1 赋值运算
a = 6 将6赋值给变量a
a += 6 #相当于a = a + 6 a = 12
a -= 4 #相当于a = a - 4 a = 8
a *= 2 #相当于 a = a * 2
2.2 比较运算
布尔类型 == >= <= != > <
== 等于的意思
= 一个等号是赋值的意思
a = 1 == 2
优先级先算==,再算赋值,如果不清楚请加括号!
得到的结果是布尔类型,正确是True,错误是False。
2.3 逻辑运算
and 两种运算,并且
1 > 2 and 3 < 4 错的,逻辑运算符可以加很多
对于and而言,一错再错,一直错
or 或者 错一点没关系,不全错就行
1 > 2 or 3 < 4
not 非,杠精,作对的
not 1 > 2,True
实战操作
print(not 2 != 3 and 6 < 7 or 5 == 4)
2.4 运算符优先级
优先级最高的是加括号
比较运算得到的结果是布尔类型
逻辑运算得到的结果也是布尔类型
在if判断中会用到布尔类型
三、字符串
3.1 什么是字符串
我们在python中以引号括起来的数据类型就是字符串。
只要在引号里面就是字符串,前面可以加个变量:
a = "qwertyuiopasdfghjkl;'zxcvbnm,./'"
引号可以是单引号,双引号,三引号,没有任何区别,
三引号可以表示多行字符串:
a = """
这是一个多行注释
巴拉巴拉小魔仙
"""
单引号和双引号时不能多行注释,只能表示一行。
三引号可以是三个单引号,也可以是三个双引号。
三引号什么时候是注释什么时候是字符串?
- 用到的时候就是字符串,不用就是注释
- 比如用到print(),变量等等
3.2 成员运算
#成员运算
names = "jack"
print ("jack" in names)
True
返回得到布尔类型:true
in 真的 not in 假的
3.3 成员操作
字符串也是可以用+号的,表示字符串拼接起来:
family_name = "Jack"
last_name = "Meng"
print(family_name + last_name)
True
JackMeng
而字符串 * 数字,表示重复多少遍:
family_name = "Jack"
last_name = "Meng"
print(family_name + last_name)
print(last_name * 5)
True
JackMeng
MengMengMengMengMeng
注意:字符串不能乘字符串,只能乘数字:
family_name = "Jack"
last_name = "Meng"
print(last_name * family_name)
Traceback (most recent call last):
File "E:/MyLife/demo2.py", line 13, in <module>
print(last_name * family_name)
TypeError: can't multiply sequence by non-int of type 'str'
3.4 字符串索引
重点:表示获取字符串当中的某一个元素
字符串的索引:索引(字符串里面每一个字符都有下标(索引),并且是从0开始)
正序:从头开始数
反序:从尾开始数
字符串怎么取值:根据索引取值
取值公式:字符串名[索引值]
索引表示方法:name[索引号]
在Python中,索引从0开始。-1的索引代表最后一位。
3.5 获取字符串的长度 len()
需要注意的是,超出索引范围,会报错!!
name = "1"
name_len = len(name)
print(name[name_len - 3])
Traceback (most recent call last):
File "E:/MyLifedemo2.py", line 10, in <module>
print(name[name_len - 3])
IndexError: string index out of range
3.6 切片
定义:切片操作可以从一个字符串中获取子字符串(字符串的一部分),使用起始偏移量
tart、终止偏移量end、可选步长step定义一个分片
格式:name[切的起始点:切的终点]
特点:取头不取尾
- [:]提取开头到结尾
- [start:]从start提取到结尾
- [:end]从开头提取到end-1
- [start:end]从start提取到end-1
切片:获取字符串的多个元素
注意:这里有个坑,切片属于顾头不固腚那种,,取左不取右,切的终点+1,也就是右边的要 +1。
3.7 步长
num = "12345678987654321"
print(num[1:5:2]) #1 + 2 + 2
print(num[2:8:3])
24
36
步长:step获取第一次以后+多少个索引去获取第2个索引
方向:正数是正方向,负数是负方向:
num = "123456789abcdefg"
print(num[::-1])
gfedcba987654321
切片中超出范围是不会报错的:
num = "123456789abcdefg"
print(num[1:10000000000])
23456789abcdefg
在切片道中,超出范围是不报错的,是表示取完的意思。
经常有Python的面试题会用到这里,比如如何倒序:
print(name[::-1])
总结:
字符串的操作
表示方法,单引号 双引号 三引号
字符串的拼接
加号+和乘号*
加号表示拼接,乘号表示重复次数
in/not in 成员运算
len()函数 获取字符串的长度
索引 获取后一个元素,以0开始,而不是1开始,超出索引范围会出错IndexError
负数 从-1开始 从右边取
切片 获取多个元素,取左不取右,超出范围 不报错,表示方法:name[start:step]
step为负数表示倒序
等等。下面奉上知识点的思维导图:
以上内容便是《每天十分钟掌握Python——运算符和字符串》的所有内容,更多python学习请继续关注我的博客——风起怨江南,目前《Python学习》专题正在不断更新,其他学习模块正在创作中。原创不易,转载请注明哦。如果喜欢请点赞和关注,谢谢大家的支持!
获得更多免费的学习资料请添加微信公众号——风起怨江南,谢谢大家的关注和支持!