python基本对象_python基础-对象

1.对象:一组数据和操作数据方法的集合

>>> class Person(object):

... def __init__(self,name):

... self.name=name

... def get_name(self):

... return self.name

...

>>> p=Person("Jordan")

>>> p.name

'Jordan'

>>> p.get_name()

'Jordan'

>>> dir(p)

['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribut

e__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_e

x__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_

_weakref__', 'get_name', 'name']

2.保留字

代码换行:

>>> print "aaa \

... yyy"

输出结果:aaa yyy

括号内的代码可随意换行:

>>> sum([1,2,3])

6

>>> sum([1,2

... ,3,4])

10

3.缩进:四个空格

4.注释:一行用#;多行用’’’

5.编码规范:避免劣质代码;适当添加注释

拓展->文档字符串:

>>> def sum(a,b):

... '''此函数用于两个数字的加法'''

... return a+b

...

>>> sum.__doc__

'\xb4\xcb\xba\xaf\xca\xfd\xd3\xc3\xd3\xda\xc1\xbd\xb8\xf6\xca\xfd\xd7\xd6\xb5\xc

4\xbc\xd3\xb7\xa8'

>>> print sum.__doc__

此函数用于两个数字的加法

>>> help(sum)

Help on function sum in module __main__:

sum(a, b)

此函数用于两个数字的加法

6.编写函数的原则:

7.编码:各进制之间要会手工转换

二进制:逢二进一 1:12:103:114:1005:101

二进制转成十进制:

1111: 1111=1*2的3次方+1*2的2次方+1*2的1次方+1*2的0次方

1000: 1*2的3次方+0*2的2次方+0*2的1次方+0*2的0次方

八进制:逢八进一 1:12:2 …… 10:12

十六进制:逢十六进一130: 16*8=12882

a=10 b=11 c=12 d=13 e=14f=15

其他进制函数转换为十进制:

>>> int('1100',base=2)

12

>>> int('17',base=8)

15

>>> 1*8的一次方+7*8的0次方

>>> int('ff',base=16)

255

>>> 15*16的一次方+15*16的0次方

转码函数:

>>> int('10101',base=2) 十进制转二进制

21

>>> int('17',base=8)十进制转八进制

15

>>> int('10',base=16)十进制转十六进制

16

>>> bin(10) 把十进制转成二进制

'0b1010'

>>> oct(10) 把十进制转成八进制

'012'

>>> hex(255)把十进制转成十六进制

'0xff'

8.原码、反码和补码

反码:解决负数加法的问题

补码:解决﹣0的问题

9.运算符和表达式

乘方:x**y

eg:>>> 8**2

64

>>> pow(2,4)

16

开方:

>>> import math

>>> math.sqrt(4)

2.0

取整:

>>> 1/3

0

除法:

>>> 1.0/3

0.3333333333333333

向下取整:小数位全部舍去(“地板除”)

>>> 5//2.0

2.0

>>> 5//2.9

1.0

四舍五入:

>>> round(5.123412,2)

5.12

>>> round((5/3),1)

1.0

取余:用于判断一个数能否被整除。

>>> 5%2

1

同时获取商和余数:

>>> divmod(10,3)

(3, 1)

>>> divmod(10.9,7)

(1.0, 3.9000000000000004)

Python无法精确保存计算时:扩大计算再返回去

>>> divmod(10.2,3)

(3.0, 1.1999999999999993)

>>> divmod(102,3)

(34, 0)

10.切片复习

切片是开区间

步长:

>>> s="abcdefghi"

>>> s[0:8:2]

'aceg'

>>> s[:-1:2]

'aceg'

#倒着取

>>> s[-1:0:-2]

'igec'

>>> s[-1:0:-1]

'ihgfedcb'

>>> s[1:-3:2]

'bdf'

练习1:三个单词,把这三个单词的最后一个字母拼接到一起

方法1:

>>> q1=raw_input()

abc

>>> q2=raw_input()

fgh

>>> q3=raw_input()

xxx

>>> q1[-2:]

'bc'

>>> q1[-1:]

'c'

>>> q1[-1]+q2[-1]+q3[-1]

'chx'

方法2:

#coding=utf-8

a="abc defghu bxys"

word_list=a.split()

print word_list

result=""

for word in word_list:

result+=word[-1]

print result

方法3:#coding=utf-8

result=""

for i in range(3):

word=raw_input("请输入一个单词:".decode("utf-8").encode("gbk"))

result+=word[-1]

print result

练习2:输入无限个单词,拼接输出最后一个字母

>>> str1=''

>>> str2=''

>>> while True:

... str1=raw_input("请输入:")

... str2=str2+str1[-1:]

... if str1==".":

... break

... print str2

...

请输入:www

w

请输入:eee

we

请输入:qqq

weq

请输入:11

weq1

请输入:

方法2:

#coding=utf-8

result=""

while 1:

word=raw_input("请输入一个单词:".decode("utf-8").encode("gbk"))

#用input打印中文必须用到

if word==".":break

result+=word[-1]

print result

11.打印二进制、八进制、十进制

>>> a=bin(8)

>>> a[2:]

'1000'

Zfill补零:切片结果前面没取到的位置自动补充为0

>>> bin(8)[2:].zfill(len(bin(8)))

'001000'

>>> "12".zfill(4)

'0012'

12.位与、位或、按位异或、按位翻转

与:

>>> 1&0

0

>>> 0&0

0

>>> 0&1

0

或:

>>> 1|0

1

>>> 1|1

1

>>> 0|1

1

>>> 0|0

0

异或:相同为零,不同为一

>>> 0^1

1

>>> 1^0

1

>>> 0^0

0

>>> 1^1

0

取反:

>>> ~1

-2

练习:

>>> a=1;b=2

>>> bin(a)

'0b1'

>>> bin(b)

'0b10'

>>> a&b

0

>>> a|b

3

>>> a^b

3

>>>

原理:

01

10

00==——a&b=0

11=a|b=3

11=a^b=3

13.比较关系运算符

>>> a=1

>>> b=2

>>> a==b

False

>>> a!=b

True

>>> a<>b

True

>>> a>b

False

>>> a

True

>>> a>=b

False

>>> a<=b

True

14.运算符优先级

记不住的话用小括号括起来。

>> 右移一位表示除2,左移一位表示乘2->针对二进制

>>> 4>>2

1

>>> 4>>1

2

>>> 4<<2

16

>>> 4<<1

8

二进制:100(4)-右移1位->10(2)-右移1位>1(1)

15. isis not

>>> a=2

>>> a=1000

>>> b=a

>>> a is b

True

>>> a=1000

>>> b=1000

>>> a is b

False

原理:同一个数值并不全部指向同一块内存,256之前的是同一个,超过256的不是。

16. innot in

>>> "a" in "abc"

True

>>> "w" not in "www"

False

17.operator包的应用

可以直接传参进行运算。

import operator

print operator.add(1,1)

print operator.sub(2,1)

print operator.mul(2,3)

print operator.div(6,2)

print operator.contains("ab","a")

print operator.pow(2,3)

print operator.ge(1,1)

print operator.ge(2,1)

print operator.le(1,2)

print operator.eq(1,1)

18.标准输入、标准输出和错误输出

输出:

>>> import sys

>>> sys.stdout.write("hello\n")

hello

>>> print "hello"

hello

>>> print ("hello")

Hello

错误输出:

>>> sys.stderr.write("error")

error>>>

>>> raw_input("input:")

input:error

'error'

输入:

>>> a=sys.stdin.readline()

hello

>>> a

'hello\n'

19.将标准输出改为文件输出

>>> import sys

>>> print 'divein!'

saveout=sys.stdout

fsock=open('out.log','w')

sys.stdout=fsock

print'This message will belogged instead of displayed'

sys.stdout=saveout

fsock.close()

divein!

没写 路径,默认在当前程序的路径下。

20.重定向到错误输出

#encoding=utf-8

import sys

print >> sys.stderr, 'Fatal error: invalid input!'

21.表达式

#coding=utf-8

length = 5

breadth = 2

area = length * breadth

print u'面积是:', area

print u'周长是:', 2 * (length + breadth)

22.单行表达式

flag = True

if flag: print 'Yes'

练习:code word 网站

23.数学函数

>>> import math

>>> math.fabs(-1)

1.0

>>> math.ceil(1.1)

2.0

>>> math.floor(2.1)

2.0

>>> math.log(10)

2.302585092994046

>>> dir(math)

['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan',

'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'er

fc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gam

ma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'mod

f', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

>>> math.log10(10)

1.0

24.三角函数

25.随机函数

随机1-10的整数

>>> import random

>>> random.randint(1,10)

5

>>> random.randint(1,10)

4

>>> random.randint(1,10)

10

随机一个列表

>>> random.choice([1,2,3,4,5])

4

>>> random.choice([1,2,3,4,5])

2

>>> random.choice([1,2,3,4,5])

2

打乱列表顺序:

>>> a=[1,2,34,5]

>>> random.shuffle(a)

>>> a

[34, 2, 1, 5]

26.五种基本数据类型间的转换

1191440-20180321224036158-286396561.png

>>> int('4e00',base=16)

19968

>>> print unichr(19968)

27.退出程序(强制退出)

import sys

print '1'

sys.exit()

print '2'

28.浮点数计算之坑

Eg:浮点数计算有错误

>>> 10-9.9

0.09999999999999964

29.使用pdb调试程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值