day01-Python输出

2018-10-19 06:17:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

输出

用print加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world'
>>>print 'hello, world'

print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>>print('hello world','hello python')

hello world hello python

print也可以打印整数,或者计算结果:
>>> print 300
300
>>> print 100 + 200
300

我们可以把计算100 + 200的结果打印得更漂亮一点:
>>> print '100 + 200 =', 100 + 200
100 + 200 = 300

在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整齐干净,就需要把一行代码分成多行来写,Python中有两种小技巧可以实现该功能:
1.用反斜杠链接多行代码,示例输出:55
a = 22 + \
33
print a       

2.用小括号括起来,示例输出:55
a = (22+
33)
print a

提示:针对较长字符串分成多行书写的还有一种简单的方法:用三个单引号,但是该方法只针对字符串有用。下面代码输出:
a = '''32 +
45'''
print a

 

如果想要分几行输入字符串,并且希望行尾的换行符自动包含到字符串当中,可以使用三对引号:"""...""" 或 '''...''' 。

print('''
文能提笔安天下,
武能上马定乾坤.
心存谋略何人胜,
古今英雄唯是君.
''')


格式化输出
age = 10
print ('我的年龄是%d岁'%age)

name = 'Tom'
age = 10
print ('%s的年龄是%d岁'%(name,age))


>>> mathScore=100
>>> print('my math score is %d'%mathScore)
my math score is 100
>>>
在引号内用%d,引号外用%变量名来输出

>>> mathScore=100
>>> englishScore=99
>>> print('my math score is %d,my englist score is %d'%(mathScore,englishScore))
my math score is 100,my englist score is 99
如果有多个变量需要调用,在引号内用多个%d,在引号外用%(变量名1,变量名2)来输出

格式化符号
说明
%c   转换成字符(ASCII 码值,或者长度为一的字符串)
%r   优先用repr()函数进行字符串转换
%s   优先用str()函数进行字符串转换
%d/%i   转成有符号十进制数
%u   转成无符号十进制数
%o   转成无符号八进制数
%x/%X 转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)
%e/%E 转成科学计数法(e / E控制输出e / E)
%f/%F  转成浮点数(小数部分自然截断)
%g/%G %e和%f/%E和%F 的简写
%% 输出%(格式化字符串里面包括百分号,那么必须使用%%)

还有一种{}.format格式
import math
r = 2
s = math.pi*r*r
print('%.10f'%s)
print('{:.10f}'.format(s))

 

Python提供了一个raw_input,可以让用户输入字符串,并存放到一个变量里。

在Python2中如果使用input(),则用户输入的内容必须是表达式,并会进行计算,所以Python2中建议用raw_input(),如果输出的是字符,在python2中必须使用raw_input()

在Python3中只有input()一种输入方法,且用户输入的内容不会参与计算,全部认为是字符串

例子:
>>> a = input('提示:')
提示:100+200
>>> a
300
>>> a = raw_input('提示:')
提示:100+200
>>> a
'100+200'
>>>

 

 

例子:打印名片

使用多行输出,利用占位符打印
name=input('请输入姓名:')
qq=input('QQ:')
tel=input('手机号:')

msg = '''
===================
姓名:%s
QQ:%s
手机号:%s
地址:北京市xxx
===================
'''%(name,qq,tel)

print(msg)


#!/usr/bin/python //指定python命令的路径
print('hello world')

赋予执行权限
chmod u+x hello.py
执行程序
./hello.py

也可以python hello.py,这种方法在代码内不需要指定python命令的位置#!/usr/bin/python
也不需要赋予执行权限


注释
用#开头的内容是单行注释

用'''
注释内容
注释内容
注释内容
'''
是多行注释

 

编码

在Python2中默认编码是ascii

C:\Users\i>python2
Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:30:26) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'

在Python3中默认编码是utf-8
C:\Users\i>python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bi
t (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

python2是1989年创立的,而utf-8是1991年才有的,所以python2在设计的时候并没有utf-8支持

windows默认编码是gbk,默认可以支持unicode和gbk,Linux默认编码是utf-8

Python2 在windows上解码是必须的,编码成gbk这个动作不是必须的,因为window在内存里默认就是unicode,在Linux上如果源码不是utf-8则需要解码成utf-8,编码也不是必须的

Python3 默认编码是utf-8,解释器编码是utf-8,文件加载到内存后会自动解码成unicode,同时把字符转换成bytes格式。

Python3 中不需要解码和编码

 

#-*- coding:utf-8 -*-
msg = "你好"

print (msg)

#C:\Users\i\Desktop>python2 test1.py
#浣犲ソ  因为dos解释器默认使用gbk编码,所以不能识别utf-8

#将utf-8编码转码为gbk编码

gbk_str = msg.decode(encoding="utf-8").encode(encoding="gbk")
#或
gbk_str = msg.decode(encoding="utf-8").encode("gbk")
print (gbk_str)

通过dos窗口执行结果如下:

#C:\Users\i\Desktop>python2 test1.py
#你好      将utf-8编码转换为gbk后就可以正常显示了

print (gbk_str.decode(encoding="gbk").encode("gb2312"))
#将gbk_str的gbk模式再转换为gb2312可以正常显示你好,因为gbk向下兼容gb2312


print (gbk_str.decode(encoding="gbk").encode("utf-8"))
#浣犲ソ   将gbk_str的编码再转换为utf-8后在dos窗口下就不能正常显示了

print (gbk_str.decode(encoding="gbk"))
#你好      直接将gbk_str解码,默认转换成了unicode编码,在dos窗口下也可以正常显示

 

msg = '你好'
print(msg.encode('gbk'))
#在python3中将msg编码成gbk编码并保存为bytes模式,便于其他解释器在解码时使用gbk编码格式进行解码
C:\Users\i\Desktop>python3 test1.py
b'\xc4\xe3\xba\xc3'

只有在需要保存文件时才需要将编码

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Web自动化

下一篇:day01