Python格式缩进一般为四个空格,代码段不能复制粘贴,否则空格将失效
#print absoute value of an integer
a = 100
if a >= 0:
print (a)
else:
print (-a)
100
a = 'ABC'
b = a
a = 'XYZ'
print (b)
print (a)
ABC
XYZ
除法取浮点数
10/3
3.3333333333333335
除法取整数
3.0
10//3
3
取余数
10%3
1
r---不转义,\n换行,''''''---换行时可以使用
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, \'Adam\''
s3 = r'Hello, "Bart"'
s4 = 'Hello\n"Bart"'
s5 = r'''Hello,
isa!,
sss'''
print (n)
print (f)
print (s1)
print (s2)
print (s3)
print (s4)
print (s5)
123
456.789
Hello, world
Hello, 'Adam'
Hello, "Bart"
Hello
"Bart"
Hello,
isa!,
sss
字符编码转换,字符转换编码ord(),编码转换字符chr()
ord('a')
97
ord('A')
65
chr(97)
'a'
chr(65)
'A'
ord('白')
30333
ord('云')
20113
ord('飞')
39134
chr(30333)
'白'
'ABC' .encode('ascii')
b'ABC'
'中文' .encode('utf8')
b'\xe4\xb8\xad\xe6\x96\x87'
'中文' .encode('GB2312')
b'\xd6\xd0\xce\xc4'
'中文' .encode('ascii')
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
<ipython-input-42-be6ab0d213fc> in <module>()
----> 1 '中文' .encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
- UTF-8格式保存输出
#/usr/bin/env
#-*- coding: utf-8 -*-
print ('中文测试')
中文测试
格式化输出字符串
'hello,%s' %'world'
'hello,world'
'Hi,%s,you have $%d.' %('lili',1000)
'Hi,lili,you have $1000.'
%使用来格式化字符串的,%s表示用字符串替换,%d表示用整数替换,%f表示替换浮点数,%x表示替换十六进制数
其中格式化整数和浮点数可以指定是否补0和整数、浮点数的位数
print ('%2d-%02d' % (3,1))
3-01
print ('%.2f' % 3.1425679)
3.14
%s可以把任何的数据类型转换为字符串类型,不会使用以上的类型替换,可以使用%s来替换
'Age: %s, Gender %s' %(25,'True')
'Age: 25, Gender True'
- %为普通字符时,需要转义,需要用%%来代替
'growth rate %d%%' % 7
'growth rate 7%'
另一种格式化方法
format()
使用format()方法,它会用传入的参数一次替换字符串内的占位符{0}、{1}......,这种方法比%麻烦的多
'hello,{0},成绩提升了{1:.1f}%'.format('小明',17.234)
'hello,小明,成绩提升了17.2%'
小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:
s1=72
s2=85
print ('%.2f'%((s2-s1)/72))
0.18
s1=72
s2=85
r=(s2-s1)/72
print (r)
print ('%.2f'%r)
0.18055555555555555
0.18