二、数据类型

输入和输出

输出

用print()在括号中加上字符串,就可以向屏幕上输出指定文字。比如输出 ‘hello wrold’, 用代码实现如下:

>>> print('hello world')
hello world

print()函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>> print("We", "lift", "our", "eyes")
We lift our eyes

print()会依次打印每个字符串,遇到逗号“,”会输出一个空格,需要注意的是字符串左右的空格是不会打印的,只会打印字符串里面包含的空格:

>>> print("We", "lift  ", "our",               "eyes")
We lift   our eyes

print()也可以打印整数,或者计算结果:

>>> print(500)
500
>>> print(500 + 300)
800

还能这样:

>>> print("500 + 300 =", 500 + 300)
500 + 300 = 800

可选参数

# 默认结束符是换行符,即每条print函数执行完会有一个换行符的操作,flush=默认是False。
print(str, end='\n',flush=False)

自行对比下面两段代码的区别:

import time
for i in range(1, 100):
    print('#', end='', flush=True)
    time.sleep(0.05)
import time
for i in range(1, 100):
    print('#', end='')
    time.sleep(0.05)

 

输出

现在,你已经可以用print()输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

 

>>> name = input()
ubuntu

 

你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:

>>> name
'ubuntu'

Ps:

  可行?

1 [root@huadong2-ceshi whb]# cat test.py
2 input("Press Ctrl + D to exit.>>")
3 print("test...")
4 [root@huadong2-ceshi whb]# python test.py 
5 Press Ctrl + D to exit.>>Traceback (most recent call last):
6   File "test.py", line 1, in <module>
7     input("Press Ctrl + D to exit.>>")
8 EOFError
9 [root@huadong2-ceshi whb]# 

 

数据类型

计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:

整数

 

Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

 

浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

字符串

字符串是以单引号'或双引号"括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

>>> print('I\'m "OK"!')
I'm "OK"!

Ps:

  转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。

  如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,在写window路径的时候尤其明显。

1 >>> print('‪‪D:\napp\python\python.exe')
2 ‪D:
3 app\python\python.exe
4 >>> print(r‪'‪D:\napp\python\python.exe')
5 ‪D:\napp\python\python.exe

另:有一点需要注意的是,input函数赋值的变量数据类型均为字符串:

1 >>> age = input("Age:")
2 Age:18
3 >>> print(age, type(age))
4 18 <class 'str'>

单引号、双引号、三引号

单引号、双引号在python中默认是一样的,没有区别,但是不能混用。三引号多用于多行引用或者注释。

 1 >>> print('hello world')
 2 hello world
 3 >>> print("hello world")
 4 hello world
 5 >>> print('''hello world''')
 6 hello world
 7 >>> print('''hello 
 8 ... wrold
 9 ... 你好
10 ... 世界
11 ... '''
12 ... )
13 hello 
14 wrold
15 你好
16 世界
17 
18 >>> 

字符串拼接

字符串能进行“相加”和“相乘”

1 >>> name = "haibin"
2 >>> age = "18"
3 >>> print(name + age)
4 haibin18
5 >>> print(name * 10)
6 haibinhaibinhaibinhaibinhaibinhaibinhaibinhaibinhaibinhaibin
字符串相加、相乘

注意:字符串相加的拼接只能是双方都是字符串。不能跟数字或其他类型拼接。

字符串常用功能

1 >>> s = "  For you, a thousand times over. "
2 >>> s.strip()  # 移除俩端空白
3 'For you, a thousand times over.'
4 >>> s.lstrip() #移除左边空白
5 'For you, a thousand times over. '
6 >>> s.rstrip() #移除右边空白
7 '  For you, a thousand times over.'
移除空白
1 >>> s = "  For you, a thousand times over. "
2 >>> s.split() #默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。可指定分割次数
3 ['For', 'you,', 'a', 'thousand', 'times', 'over.']
分割
1 >>> s = "  For you, a thousand times over. "
2 >>> len(s)
3 34
长度
1 #索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。难以理解的话,习惯就好了。或者可以理解为偏移量。
2 >>> s = "  For you, a thousand times over. "
3 >>> s[5]
4 ' '
5 >>> s[4]
6 'r'
7 >>> s[3]
8 'o'
索引
 1 # 切片就是通过索引(索引:索引:步长)截取字符串(原则就是顾头不顾腚)。
 2 >>> a = 'ABCDEFGHIJK'
 3 >>> a[0:3]
 4 'ABC'
 5 >>> a[2:5]
 6 'CDE'
 7 >>> a[0:] #默认到最后
 8 'ABCDEFGHIJK'
 9 >>> a[0:-1] #-1就是最后一个
10 'ABCDEFGHIJ'
11 >>> a[0:5:2] #加步长
12 'ACE'
13 >>> a[5:0:-2] #反向加步长
14 'FDB'
切片
 1 >>> name = "root 123"
 2 >>> name.capitalize()  #首字母大写
 3 'Root 123'
 4 >>> name = "root 123 ubuntu "
 5 >>> name.capitalize()  #首字母大写
 6 'Root 123 ubuntu '
 7 >>> name.swapcase()    #大小写翻转
 8 'ROOT 123 UBUNTU '
 9 >>> name.title()       #每个单词的首字母大写
10 'Root 123 Ubuntu '
11 >>> name.center(20,'-') #内同居中,总长度,空白处填充
12 '--root 123 ubuntu --'
13 >>> name.count('o',0,4) #字符串中的元素出现的个数,元素:索引:索引
14 2
15 >>> name.startswith('a',1,5) #判断是否以**开头
16 False
17 >>> name.endswith('a',1,5) #判断是否以**开头
18 False
19 >>> name.find('o') #寻找字符串中的元素是否存在,找到返回元素索引,找不到返回-1
20 1
21 >>> name.index('o') #寻找字符串中的元素是否存在,找到返回元素索引,找不到报错
22 1
简单方法

 

布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

1 >>> True
2 True
3 >>> False
4 False
5 >>> 3 > 5
6 False
7 >>> 3 < 5
8 True

布尔值可以用and、or和not运算。

 1 >>> True and  False
 2 False
 3 >>> True and  True
 4 True
 5 >>> False and  False
 6 False
 7 >>> 
 8 >>> True or  False
 9 True
10 >>> 
11 >>> not True
12 False
13 >>> not False
14 True

空值

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

 

posted on 2018-05-07 22:07  空舟  阅读(237)  评论(0编辑  收藏  举报

导航