目录
链式赋值
使用这个方法会很方便进行变量交换
比起c++代码要见到多了,c++代码:
-
int a=
1,b=
2,t;
-
t = b;
-
b = a;
-
a = t;
提到了变量,顺便说一下常量。在c++中,如果要定义常量,所用到的方法是:
#define MAXN 16660
我们用这个方式,定义了常量MAXN,其值固定为16660。在Python中,其实是没有常量的,但出于习惯,我们把常量用大写表示,这意思是:写代码的人的逻辑上的常量,但是实际中可以进行值得改变。
自动转型:
整数和浮点数混合运算时,表达式结果自动转型成浮点数。
问题:整数可以多大?
在c/c++中,整型一般是16位。但是在Python中,整数想多大就多大,因为python被用来进行科学计算,这种类型的计算一把数都很大,所以在Python中,整数是可以很大的,没有溢出之类的问题发生。
科学计数法的一些表示:
100000 可以写成1e5或者1E5。
0.00001可以写成1e-4或者1E-4
3.14可以写成314e-2或者314E-2
浮点数(小数)float
科学计数法表示,3.14表示:314*(10**-2)(314E-2)
转为浮点数:foat()
这段代码实际在内存中:
同理,除了float(),还有int()函数。int()函数只是将数据取其整数部分,不会进行四舍五入的操作,如果所示:
如果要进行四舍五入(注意:这里的四舍五入跟数学中的不一样,具体看代码),可以使用round()函数:
(1)小数点后第一位小于等于4,舍去
(2)小数点后第一位等于5,也舍去
(3)小数点后大于5,才进行进一位操作
Python中的运算符
1、普通运算符
符号 | 用法 | 值 |
- | a,b=1,2 计算a-b | -1 |
+ | a,b=1,2 计算a+b | 3 |
* | a,b=1,2 计算a*b | 2 |
/ | a,b=1,2 计算a/b | 0.5 |
我们注意到做“/”时,返回的是个float类型的数,如果要进行整除,我们需要使用“//”,下面代码输出结果为0
-
a,b=
1,
2
-
print(a//b)
剩下的一些运算跟c/c++ 一样:
2、逻辑运算符
在c/c++里面,我们用:&&表示逻辑与,||表示逻辑或,!表示逻辑非
在Python里面:
3、增强运算符
Python中的一些增强运算符:
+= 、-=、 *=
执行增强运算符时,比如:a = a + 1,先找到a的对象,然后新建一个对象,将a + 1后的值存入(包括类型、标志),然后将这个新的对象返回a,原来的a的对象会被回收(Python中一切都已对象为操作)
4、同一运算符
用于比较两个对象是否指向同一个内存单元。用is运算符,如果指向同一个内存单元,结果为True,否则结果为False
举例:
关于整数缓存问题
这里返回的结果是布尔值:True和False。True和False都是关键字,本质上,True=1,false=0
示例:
1、交互式界面
2、pycharm界面:
运算符“==”也可以进行判断两个数字是否相等,但是is比“==”效率高。如果在变量和None之间进行比较,应该用is
时间表示
首先要导入time库:
import time
时间计算:从1970年1月1日00:00:00(unix时间)开始计算计算时间:
time.time()获取当前时间,我们可以看到结果是一堆数字,这些数字代表什么?整数部分为现在离unix时间过了多少秒,小数部分表示的是微秒(1E-6)。我这里用了整数部分和小数部分进行时间的描述,因为时间本质上是一串数字,只不过整数用s做单位,小数部分用us做单位
字符串
字符串是Python中很重要的一块儿内容。在Python中字符串是不可以进行更改的,我们没有办法对原字符串做任何修改。可是明明关于字符串的操作很多,是怎么进行的?这就要用到这篇博客讲到的Python内存机制。
注意以下几点:
1、Python中没有字符这一说法,单字符也会被当做一个字符串使用,操作同字符串
2、Python3直接支持Unicode码,16个比特位表示一个字符(建议使用python3)。
3、使用内置函数ord()可以把单个字符转化成Unicode编码
-
s =
'u'
-
print(ord(s))
4、使用内置函数chr()可以吧十进制数字转为对应字符
-
a =
100
-
print(chr(a))
5、引号创建字符串,可以用单引号或者双引号,这两个等价。
(虽然s和t的值相等,但是指向不同的内存地址)
关于单引号与双引号的一些问题:
例如:a = "i'm a teacher",这句话是对的,结果如下图:
如果单引号‘I'm a teacher’,这样会出错,Python会认为I是个字符串,后面就会报错,结果如下图:
当然,也可以这样用:‘i"m a teacher’
6、连续的三个双引号或者单引号是个字符串,可以用来当注释使用
7、Python可以允许有空字符串的存在,其长度为零
转义字符
图片
一些小例子
字符串拼接:+号(会影响性能,+一次生成一个新对象)
-
a =
'123'
-
b =
'456'
-
print(a+b)
结果是:123456
+号两边要求操作数类型一样,否则会报错
字符串复制,*号
调用prinf时,,自动换行符,如果要取消,则print(123,end=''),end是加任何内容/*图片*/
控制台读取字符串
可以使用input()
str()实现其他类型转型字符串
-
s =
12
-
print(str(s))
-
""" 结果为 '12' """
将一个科学计数法自动计算并转为字符串
-
a =
1e6
-
print(str(a))
-
""" 结果为: ‘1000000’ """
字符串本质是字符序列;使用[]提取字符串,[]里面指定偏移量(索引),操作跟c/c++一样。只不过从后往前时,c++模式:
-
string str =
"1244324"
-
int len = str.length()
-
for(
int i=len
-1; i>=
0; i--)
-
{
-
cout<<str[i]
-
}
Python有另一种方式:
-
str =
"1234342"
-
s[
-1]
'''结果为 ‘2’ '''
常用字符串函数
1、replace()字符串替换。
这里的字符串替换与之前所提到的str不可变是不矛盾的,有时候相对字符串做修改,我们可以用replace(),s.replace(),字符串是不会改变的。
2、字符串切片slice操作
切片slice的操作可以让我们快速提取字符串,标准格式[启示偏移量 start:种植偏移量 end: 步长 step]
实际裁剪:[start,end)(包头不包尾)
步长为1:隔0个取一个,即连续的
步长为2:隔1个取一个,即中间空一个
start end step 默认:start=0,end=len-1 step=1
其他操作:操作数为负的时候;可以从-1往回走。步长为负表明倒着取
3、split()和join()
spit()可以基于指定分隔符将字符串分割成多个字符串(存储到列表中),如果不指定分隔符,则默认使用空白字符(换行符、制表符、空格)
join()通常和列表一起使用(之前讲过+和*)
+与jion()对比:join()仅新建一次对象(性能较高),而每+一次,创建一次新对象,以下是+和join()所用时间对比图:
4、成员操作符
in/not in 判断某个字符(子字符串)是否在于字符串中,返回的结果为True或者False
5、其他:
Python中的字符串驻留机制:
同样用 is 或者 not is 操作,返回值为True或者False
如果是:
-
a =
"fd*"
-
b =
"fd*"
-
a
is b
则结果为False。
转载:https://blog.csdn.net/qq_38851184/article/details/104993352