输入和输出
输出
用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是一个特殊的空值。