代码改变世界

day01Python

2018-02-23 10:48  欢乐小汤勺  阅读(102)  评论(0编辑  收藏  举报

linux下:vi 01.txt -->i或o--》进入编辑模式---》英文输入法按esc退出,在wq或x即可
---------------------------------第一个ptyhon程序----------------------------------
print("hello world")

单行注释#

多行注释"""   """    或'''    '''


在有中文的情况下,程序第一行要写#-*- coding:utf-8 -*- 或 #coding=utf-8 建议第一种
执行py文件--》python 01.py即可

 

----------------------------------定义变量和使用变量-----------------------------

score=100
定义一个变量,变量名字score,里面存储一个数值100
price=3.5
count=2
money=price*count #定义一个新变量money
money=money*10 #改变变量的值

 

----------------------------------输入input--------------------------------
#########python3
name=input("请输入你的名字:")
age=18
print("age是:%d"%age)
print("age是:%s"%name)
ipython--》直接输入name也可以出来
#######python2
a=raw_input("请输入:")
a

 

-------------------------变量类型,转换,判断等---------------

if 条件:
  语句
else:
  语句

if 条件:
  语句
elif 条件:
  语句
elif 条件:
  语句
else:
  语句


age=19
if age==19:
print("true")


type(age)-->查看类型

input获取的所有数据是字符串类型
name='123'
int(name)

 

2**3--->8
'H'*3--->HHH

name='hsoh'
age=23
addr='jsoh'
print("姓名是:%s,年龄是%d,地址是%s"%(name,age,addr))

 

-------------------------while循环--------------

while 条件:
  语句

--------------------------------------------------------

import random
random.randint(0,2)
0-2的随机数

 

 

---------------for循环------------------
name='laowang'
for i in name:
  print(i)

 

i=1
while i<=10:
  if i%2==0:
    print(i)
  i+=1
  if i==3:
    continue
  if i==5:
    break

 

-----------------存储----------------
1个字节最大值255
name='laowang'
下标:
name[-1]
name[1]
name[len(name)-1]
切片:
name='hishdfnIGI'
name[2:6]-->取3-6个元素
name[2:-2]
name[2:]
name[2:-1:2]--->[起始位置:最终位置:步长]
name[-1::-1]
name[::-1]

mystr='joso ihn oih'
mystr.find('ih')
mystr.rfind('ih')
mystr.index('ih')
mystr.rindex('ih')
mystr.count('ih')
mystr.replace('ih','ou','1')
mystr.split(' ')----->切割
a=['aaa','bbb','ccc']
b='-'
b.join(a)--->aaa-bbb-ccc
result='aa oisj \tsiohd \tjoisih'
result.split()
" ".join(result.split())

--------------------------------------列表--------------------

a1='ho'
a2='hw'
a3='ih'
names=['ho','hw']
nums=[11,33,'100','kaowj']
names[0]='oijns'
names.append("老赵")
names.insert(位置,添加内容)
names.insert(0,‘八戒’)
n1=['sd','dsf']
names.append(n1)
names.extend(n1)
names.pop()--->最后一个删除
names.remove('ho')--->从左边找,只删除一次
del names[0]
if 'ji' in names:
  print('sh')

 

---------------字典------------

info={'k1':34,'k2':'sd'}
info['k1']
info.get('k1')
info['k3']=97
info['k1']=97
del info['k3']
info.keys()
info.values()
info.items()


for i,v in info.items():
  print(i,v)

infor=[{'name':'aa','age':18},{'name':'bb','age':18}]
for i in infor:
  print("%s\t%s\t"%(i['name'],i['age']))

 

a=(11,22)

b,c=a

-------------------元组--------------

a=(97,34,66)
a[0]=99

------------------函数------------
定义函数
def print_menu():
...
调用函数
print_menu()

参数的函数

def sum_nums(a,b):
  print(a+b)
f=1
g=20
sum_nums(f,g)

return的作用
def ce():
  wendu=22
  return wendu---->把这个返回结果给调用函数
def ou(a):
  a+=3

d=ce()
ou(d)

函数嵌套调用
def test1():
  pass
def test2():
  pass
def test3():
  test2()

-----------------------局部变量-------------------
def test1():
  a=100----->局部变量
def test2():
  print(a)--->不能用
print(a)--->不能用
test2用不了test1的a
-----------------------全局变量-------------------

在函数外面定义,任何函数都可以用
a=100
def test1():
  print(a)

 

a=100
def t1():
  global a
  a+=1---->改变全局变量

def sum(a,b,*args,**kwargs):
  pass
A=(44,55,66)
B={'name':'laownag','age':15}
sum(1,2,3,4,5,6,7,8,A,B,task=99,done=89)
sum(1,2,3,4,5,6,7,8,*A,**B,task=99,done=89)
----------------------------引用----------------
a=100
b=a
id(a)
id(b)
------------------------递归---------------------
def getnums(n):
  if nums>1:
    return num*getnums(n-1)
  else:
    return num
getnums(4)

--------------------------匿名函数----------------
info=[{'name':'sd','age':34},{'name':'sdf','age':34},{'name':'sdh','age':34}]
info.sort(key=lambda x:x['name'])

a=input('请输入:')
eval(a)----》把a字符串的双引号去掉

 

----------------交换------------
a=4
b=5
第一种
c=0
c=a
a=b
b=c

第二种
a=a+b
b=a-b
a=a-b
第三种
a,b=b,a

--------------------文件-----------
f=open('test.py',"r")
f.close()
f.read()
f.write('ss')

f.seek(2,0)--->从文件开头跳2个字节
---------------------面向对象----------
定义类:
class Cat:
  属性

初始化对象
def __init__(self,newname):
  self.name=newname

def __str__(self):
  return 'haha'

-----------------私有方法----------------
def __send(self):
  pass

 方法
def eat(self):
  print("hsoh")

  self.send

def drink(self):
  print('%s:'%self.name)


tom=Cat()-->创建对象

调用对象方法
tom=Cat()
tom.eat()
添加对象属性
tom.name='汤姆'

lanmao=Cat()
lanmao.name='蓝猫'
lanmao.drink()

tom=Cat('汤姆')
tom.drink()

print(tom)

 

class dog:

当没有对象引用这个类,就调用这个方法
  __del__(self):
    print('999999')

dog1=dog()
dog2=dog1
del dog1
del dog2
print('----')

 

import sys
class t:
  pass
a=t()
sys.getrefcount(a)
测出a的引用对象有多少

----------继承-----------
class Animal:
  def eat(self):
    pass
  def drink(self):
    pass

class dog(Animal):

 

------调用父类------------------

Dog.bark(self)

super().bark()
class C(A,B):

c.__mro__----->查询搜索的顺序

类方法
@classmethod
def add_num(cls):
@staticmethod
def add_num():

 

class Dog(object):
  def __init__(self):
  def __new__(cls):#cls是Dog指向的类对象
    print('new')
    return object.__new__(cls)-->必须调用父类的,创建对象
xtq=Dog()--》调用new方法来创建对象(=变量),再调用init方法(刚刚创建的对象),最后返回对象的引用

----------------异常-----------
try:
raise sharException()
except 异常的名字:
捕获到异常后的处理
except 异常的名字:
捕获到异常后的处理
except (异常的名字,异常的名字):
捕获到异常后的处理
except Exception as e:
如果用了这个,那么意味着只要上面的没有捕获到异常,则这个一定能捕获到
else:
没有异常执行的功能
finally:
无论什么情况都执行
except sharException as result:
自己定义的异常

class sharException(Exception):
...

安装模块
sudo pip install pygame
安装pygame模块,到python2
sudo pip3 install pygame
安装pygame模块,到python3
导入模块
import sendmsg
sendmsg.test1()

from sendmsg import test1,test2
test1()

from sendmsg import *
test1()

import time as tt
tt.sleep()

 


----------列表生成式---------
a=[i for i in range(10)]
c=[i for i in range(10) if i%2==0]
d=[(i,j) for i in range(3) for j in range(2)]
-----------列表去重
a=[1,2,3,2,3]
f=set(a)
b=list(f)

b=[]
for i in a :
  if i not in b:
    b.append(i)