-
字符串由一个个字符组成,每一个字符都有一个唯一的位置。比如字符串'ABC',
0位:第一个字符是A,
1位:第二个字符是B,
2位:第三个字符是C。
字符串切片:[ ]——可以使用位置的方式取出字符串中特定位置的字符,按照位置取字符串的方式使用中括号 [] 访问,这个时候可以把字符串看作是一个列表(一种数据类型)
在程序的世界中,计数是从0开始的,使用0来表示第一个
[ num]:[ ]只填一个数字,表示只读取输出一个字符
s = 'ABC'
a = s[0] # 第一个
b = s[1] # 第二个
c = s[2] # 第三个
print(a) # ==> A
print(b) # ==> B
print(c) # ==> C[num1:num2]:采取切片的方式获取,切片需要在中括号[ ]中填入两个数字,中间用冒号分开,表示子串的开始位置和结束位置,并且这是左闭右开区间,不包括最后的位置。
[ ]填写2个数字,表示读取num1位到num2位。
ab = s[0:2] # 取字符串s中的第一个字符到第三个字符,不包括第三个字符
print(ab) # ==> AB
s = 'ABCDEFGHIJK'
cdef = s[2:6] # 取字符串s中的第三个字符到第七个字符,不包括第七个字符
查看全部 -
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。
为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
python3的编码
在python3中,默认使用UTF-8 Unicode来进行编码,因此我们可以在python中输入任意形式的Unicode字符串,都不会遇到像python2中遇到的问题(在python2中,需要显式指明该字符串是Unicode字符串),
在python3中,中文字符串和英文字符串无异。
查看全部 -
不固定字符串:format——字符串是Python程序重要的数据类型,到目前为止,我们输出的字符串的内容都是固定的,但有时候通过字符串输出的内容不是固定的,这个时候需要使用format来处理字符串,输出不固定的内容。
字符串format由两个部分组成:字符串模板、模板数据内容组成,通过大括号{},就可以把模板数据内容嵌到字符串模板对应的位置。
format()必须是填充字符串,要么先定义好字符串,要么直接用引号括住填充内容。
指定模板数据内容顺序:{}中加数字序号——如果模板中{}内容比较多,则容易错乱,那么在format的时候也可以指定模板数据内容的顺序。
template = 'Hello {0}, Hello {1}, Hello {2}, Hello {3}.'
result = template.format('World', 'China', 'Beijing', 'imooc')
print(result)
输出结果:
Hello World, Hello China, Hello Beijing, Hello imooc.
template = 'Hello {3}, Hello {2}, Hello {1}, Hello {0}.'
result = template.format('World', 'China', 'Beijing', 'imooc')
print(result)
输出结果:
Hello imooc, Hello Beijing, Hello China, Hello World.
除了使用顺序,还可以指定对应的名字,使得在format过程更加清晰。
template =r''' Hello {w},
Hello {c},
Hello {b},
Hello {i}. '''
world = 'World'
china = 'China'
beijing = 'Beijing'
imooc = 'imooc'
result = template.format(
w = world,
c = china,
b = beijing,
i = imooc )
print(result)
template =r'''
life is {a},
you need {b} '''
short ='short'
enjoy ='enjoy'
result = template.format(
a = short,b = enjoy)
print(result)
查看全部 -
raw字符串—— r'… ' 或者 r'''… '''
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:r' \(~_~)/ \(~_~)/ '
但是 r' … ' 表示法不能表示多行字符串,也不能表示包含 ' 和 " 的字符串。
如果要表示多行字符串,可以用 '''...''' 表示:
'''Line 1
Line 2
Line 3'''''' ….''' 字符串的表示方法和“单引号+\n”的是完全一样的:'Line 1\nLine 2\nLine 3'
还可以在多行字符串前面添加 r,把这个多行字符串也变成一个raw字符串:
r''' Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc! '''两种表示内容有“引号和换行”的语句——转义符 or raw字符串
'\"To be, or not to be\": that is the question.\nWhether it\'s nobler in the mind to suffer.'
print(r''' "To be, or not to be": that is the question.
Whether it's nobler in the mind to suffer. ''')
查看全部 -
字符串可以用 ' ' 或者 " " 括起来表示。
对于字符串本身内容有引号的情况,内容中是单引号,可以使用双引号来括起来字符串;内容钟是双引号
如果字符串本身包含 ' 怎么办?比如我们要表示字符串 I'm OK ,这时,可以用 " " 括起来表示:" I'm OK "
类似的,如果字符串包含 ",我们就可以用 ' ' 括起来表示:' Learn "Python" in imooc '
如果字符串既包含 ' 又包含 " ,,就需要对字符串中的某些特殊字符进行“转义”,Python字符串用 \ 进行转义。
由于 ' 和 " 会引起歧义,因此,我们在引号前面插入一个 \ ,表示引号是一个普通字符,不代表字符串的起始。转义字符\不计入字符串的内容中。
' Bob said \" I \'m OK \" . '
常用的转义字符还有:
\n 表示换行
\t 表示一个制表符
\\ 表示 \ 字符本身
查看全部 -
布尔类型只有True和False两种值
与运算
只有两个布尔值都为 True 时,计算结果才为 True。
或运算
只要有一个布尔值为 True,计算结果就是 True。
非运算
把True变为False,或者把False变为True:
条件判断,执行不同后续代码——这些运算有什么用呢?计算机程序是由无数的逻辑分支组成的,通过布尔运算,可以在计算机中实现条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码
多种数据类型一起,可以做布尔逻辑运算——
在Python中,布尔类型还可以与其他数据类型(字符串,数字等)做 and、or和not 运算
数字/字符串的布尔类型:因为Python把0、空字符串和None看成False,其他数值和非空字符串都看成True
True and 0计算结果是0
继续计算0 or 99计算结果是 99
结果是99
与或非运算优先级别——非最高:not计算的优先级是高于and和or的
True and not False # ==> True
短路计算
Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果
1,在计算a and b时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2,在计算a or b时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
运算优先级别:布尔运算 > 四则运算
查看全部 -
在Python中,整数和浮点数虽然属于不同的数值类型,但是在运算上是可以一起运算的
整数、浮点数可以直接进行四则运算。
整数和浮点数运算后 ,得到的结果不管小数点后是否有值,结果都变成浮点数
除法:精确除
注意:在使用除法,Python2可能和Python3得到不一样的结果
在python2:只取商,得到的是一个整数的结果,这是因为除数和被除数都是整数时,得到的结果也默认保存为整数了,这是非常不科学的。
在python3:取精确值,改进了这一点。Eg. 10/3=3.3333333…5,整数相除也可以输出浮点数格式的精确值。
取模运算 MOD
Python数字支持取模运算,使用百分号%表示取模。
判断奇偶:恰当使用取模运算,可以判断一个数是否为偶数,当一个数对2取模结果为0时,则这个数为偶数,否则为奇数。
print(33 % 2) # ==> 1 因此33为奇数
print(100 % 2) # ==> 0 因此100为偶数地板除://
Python除了普通除法以外,还有一个特殊的除法被称为地板除,对于地板除,得到的结果会忽略纯小数的部分,得到整数的部分,地板除使用//进行。
地板除是只取商整数,不四舍五入。在python3里面用来代替之前2.7版本的除法/ 。
地板除的格式,由除数与被除数决定。若有一个是浮点数,则地板除是浮点数,否则是整数。
小数点位数:round(index,save num)
使用Python计算小数的时候,经常需要保留小数点后若干位,可以使用round()函数来处理,这里先了解round的调用方式,使用两个参数,第一个是需要保留小数点位数的数值,第二个是保留的位数。
查看全部 -
a=1
print(a)
a='hello'
print(a)
a=1.34
print(a)
a= not 1==2
print(a)
a= 1==1
print(a)
a= (1==1 and 2==2)
print(a)
运行成功
1
hello
1.34
True
True
True
变量不仅可以是数字,还可以是任意数据类型(字符串、布尔值、空值、字典等)。
变量名由大小写英文字母、数字和下划线_组成
变量不能用数字开头
变量尽量不要和Python关键字重合(比如前面学习过的:and、or、not,否则可能导致Python原有关键字发挥不出作用)
以下这些变量的定义都是合法的。num, count, _none, min_value,他们都满足上面的三个条件。
以下这些变量的定义都是不合法的。1num, 666, 1_cd, and
定义变量
定义变量的方式很简单,通过 变量名 = 数据,即可定义一个变量。
Python这类语言特有的特性,我们称之为动态语言——
在Python里面,一个变量可以先后存储多种不同类型的数据。
与之对应的是静态语言,Python、Javascript等等都是动态语言,Java、C、C++等等属于静态语言。
python没有中文字符,无法打印输出
不同变量类型不能通过加号连接后输出
正确输出:同样变量类型,如同为str
,:分隔符
当print()里面是没有引号时,如果“有,分隔符”,则输出的内容中,“,是相当于一个空格”
查看全部 -
整数运算永远是精确的,浮点数则可能有四舍五入的误差。
\+':\是转义符,后面的第一个'可以显示,如print('what\'s'),输出是what's
print('\'aa\''):'aa'
整数
在计算机中也常用二进制或者十六进制表示整数。相比十进制数,在Python中使用以下方式表示二进制数和十六进制数。
二进制数只使用数字0、1表示,在Python中,二进制整数使用前缀
0b表示,比如:
0b0110,
0b1100。
十六进制数除了0~9十个数字以外,还使用a、b、c、d、e、f,在Python中,十六进制使用前缀
0x,比如:
0x12ef,
0xde2431af。
浮点数
按照科学记数法表示时,一个浮点数的小数点位置是可变的(浮动的),比如,
1.23x10^9和
12.3x10^8是相等的,因此称为浮点数。
整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差
python3.5版本以下,print(0.1+0.2==0.3):输出结果是 False。0.1+0.2=0.3.......4
然而,3.6版本以上,是True
字符串
字符串对应生活中的就是非数字类型的内容,比如一个句子,一段话,在Python中就是字符串,在Python中,字符串必须是以''或""括起来的任意文本,比如'abc',"xyz"等等。
''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。
如果没有单/双引号括起来,则报错(no define index)
布尔值
在Python中,可以直接用True、False表示布尔值(请注意大小写,首字母大写,不需要使用字符串符号括起来),也可以通过布尔运算计算出来
print(True):输出是 True
布尔值可以用and、or和not运算(注意and,or,not都是Python语言本身的关键字)。
这三个关键字的前后要保留空格,不可直接接触前后内容。
not运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。
print(1+1==2 and 2==2):输出结果 True
空值
空值是Python里一个特殊的值,用None表示。
注意,None和0是不一样的,None不能理解为0,因为0是有意义的,None是一个特殊的空值。
此外
Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型
查看全部 -
r表示raw字符串,无需再进行转义操作
'''xxx'''表示多行字符串,像写文本一样
查看全部 -
\表示转义符
\n表示换行符
\t表示制表符
\\表示\本身
查看全部 -
python中,与(and)或(or)非(not)
python中把0,空字符串与None看成false,
因此,a=True,print(a and 0 or 99) # ==> 99
python中,not的优先级高于and和or
查看全部 -
print(hello world)查看全部
-
子串
str[x:y]表示从字符串str的第x+1个字符开始到y个字符组成的子串
查看全部 -
# 字符串模板 template = 'Hello {}' # 模板数据内容 world = 'World' result = template.format(world) print(result) # ==> Hello World
如果模板中
{}
比较多,则容易错乱,那么在format的时候也可以指定模板数据内容的顺序。# 指定顺序 template = 'Hello {0}, Hello {1}, Hello {2}, Hello {3}.' result = template.format('World', 'China', 'Beijing', 'imooc') print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc. # 调整顺序 template = 'Hello {3}, Hello {2}, Hello {1}, Hello {0}.' result = template.format('World', 'China', 'Beijing', 'imooc') print(result) # ==> Hello imooc, Hello Beijing, Hello China, Hello World.
除了使用顺序,还可以指定对应的名字,使得在format过程更加清晰。
# 指定{}的名字w,c,b,i template = 'Hello {w}, Hello {c}, Hello {b}, Hello {i}.' world = 'World' china = 'China' beijing = 'Beijing' imooc = 'imooc' # 指定名字对应的模板数据内容 result = template.format(w = world, c = china, b = beijing, i = imooc) print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc.
查看全部
举报