学习Python的总结

来源:互联网 发布:lte网络拓扑图 编辑:程序博客网 时间:2024/05/16 03:02

由于之前我编程都是使用java,所以在学习python的时候常常将其与java的做对比。
1.简单语法部分
java中的任何变量都需要声明,在声明的时候并不需要赋值。而在python里,所有变量都是在声明的一刻进行赋值。否则语法会报错。并且python中的任何变量并没有类型的限制:就是说在声明的时候不需要再前面表明它的类型,可以直接拿过来进行使用。
如  my_strint='faklfhkjadfh' 注意对于字符串类型的变量,其两边可以用双引号,也可以用单引号
  my_int=1234
input
x=raw_input():
将下一行输入的东西赋值给x 括号中的是你希望能够在控制台上显示提示你输入的东西
Print
Print 是在控制台输出最常用的格式,(其他的还没有发现)其语法也非常简单 :
print variable(变量名)  在3.2中可能还需要加上括号来分割开。
或者 print 324234   print "fdajkfhak"
如果想要在一段字符串中引用其他的变量则需要   print "dfjakhfkja%sfjklsfj%d"%(my_string,my_int) 括号里面的变量可以任意的扩充。
如果想要将两端字符串(字符串变量也可以)加起来就需要+  print ‘fdahjfha'+'\n'
另外,每次print后它是自动换行的,如果想要在一行则需要加个逗号  :print "age: ',18  当然逗号后面也可以不写东西
定义函数的格式:
定义函数用def define的缩写
def function(parameter):
    4个空格
需要注意的有以下几个地方:
1.在函数这一块,包括函数每一行都要缩进4个空格,并依此来标志函数的范围
2.定义函数的时候,在声明函数后要加冒号表示函数体的开始
与函数类似需要加冒号并且整个函数体都需要4个空格的缩进还有for while if else 以及class
循环:
循环总共有两类,for类和while类
for:
for item in parts:  其中item和parts是自己设置的参数,parts可以是list dictionary,string,range()
若是list,dictionary,string 每一个item就是每一个element 如果需要int行的时候就需要设置一个范围 如 in range(1,19)
range(x,u)表示从x到y包含x不包含y
for 的循环体中可以加入break 来结束循环,并且可以else else与for在同一列 当没有遇到break跳出的时候执行else的语句
若是意外跳出就不执行、
while 表达式:
其余的和for类似
if,elif, else
只有一点需要注意,每一对,或者逻辑上是一对的需要在同一列
lambda:

lambda表达式: 语法 syntax  lambda variable: expression
 filter(function, sequence):lambda x: x % 3 == 0  等于 def by_three(x):
                                 return x % 3 == 0



可以看出来返回的x就是满足后面的条件的
String
len(),str(),.lower() .upper()这是几个我们常用的函数,而前两个和后两个还是有些不同的。向前两个,求长度,将其他的类型转化为字符型可以用在许多类型的变量里,换句话说,它们并不是字符串string所独有的函数。所以在使用的时候常常是 my_int=len(my_string)
而后两个将所有字符全变为大写,和全变为小写是字符类型所独有的;所以使用的时候就是  my_string.lower()
my_list=my_string.splite(my_str)
将my_string中的my_str去掉并分隔开成为一个list如['a','b',b',c']='ambmcm'.splite('m')
my_string=my_str.join(my_list)正好相反
一般情况下,我们不对string进行修改,而是新建一个string并把它构造成我们需要的样子
string中的某个字符可以用my_string[i]来表示,但却不可以直接对其进行赋值。
我们也可以对string进行切片 或者说求子串  string[x:y]表示从x开始到y包括x不包括y的子串,注意从0开始记
list
list是很长用的一种数据格式
声明一个list是 my_list=[]这是一个空的list,里面可以以int string list dictionar等等
添加element用到 .append() 这个函数是把element添加到list的尾部,删除用.remove()
list同样也可以进行分割 list[x:y:z]表示从第x个元素开始(包括x)到第y个元素结束(不包括y)每个z个取一个元素;z可以为负数 负数就以为的顺序相反
x和y都是从0开始计数的在默认my_list[::]的情况下表示从第一个到最后一个(包括)每个一个也就是都取到。
for index,item in enumberate(list)
将链表按照dirction的格式输出 index从0增加 item 依次是下一个元素
多个数组同时遍历
for a, b in zip(list_a, list_b):
    # Add your code here!
    print max(a,b)
zip(list_a,list_b)是使得ab以笛卡尔积额形式成对出现
有一种建立list的方法是my_list=[x for x in range(20) if x%2==0]其中x可以为表达式 表达式的值存储在list里
dictionary
dictionary与list类似,建立一个空的dictionary为my_dictionart={}
添加元素的方式为 my_dictionary[key]=value 骑在dictionary中的保存形式为mydictionary={[key:value],}删除的时候以key为标志删除比如.remove(key)
dictionaries.items() 以list的形式将(key,values)成对保存
bit:
bit都是需要0b111000
将一个十进制的数转化为2进制需要 bin(ten) 同理还有oct(8) hex(16)
int(string_bit,2)可以将将以‘1001000’之类的2进制的数变成十进制的数
下面介绍3中运算
& 与0001000&a>0可以判断a的第四位是否为1
| 与0001000|
^  与001000^可以将第四位翻转
 class:
与java有一点类似,每一个类都需要有一个父类
1.class Fruit(object):一般至少继承了object作为父类
    """A class that makes various tasty fruits."""
    def __init__(self, name, color, flavor, poisonous):  
用于初始化,self代表类本身,不需要在建立对象时声明
        self.name = name   利用self对成员变量进行赋值
        self.color = color
        self.flavor = flavor
        self.poisonous = poisonous
    
    def description(self):  如果用到成员变量的话,函数的参数一定要包括self
        print "I'm a %s %s and I taste %s." % (self.color, self.name, self.flavor)
        
    def is_edible(self):
        if not self.poisonous:
            print "Yep! I'm edible."
        else:
            print "Don't eat me! I am super poisonous."

lemon = Fruit("lemon", "yellow", "sour", False)建立对象的方法

lemon.description()  调用函数时也无需表明参数是self
lemon.is_edible()
2.
class Employee(object):
    """Models real-life employees!"""
    def __init__(self, employee_name):
        self.employee_name = employee_name
    
    def calculate_wage(self, hours):
        self.hours = hours
        return hours * 20.00

# Add your code below!
class PartTimeEmployee(Employee):
    def calculate_wage(self,hours):
        self.hours=hours
        return hours*12.00
    def full_time_wage(self,hours):
        return super(PartTimeEmployee,self).calculate_wage(hours)
#调用父类的函数要给出出self以外的参数
milton=PartTimeEmployee('milton')
print milton.full_time_wage(10)
3.
class Triangle(object):
    number_of_sides=3
    def __init__(self,angle1,angle2,angle3):
        self.angle1=angle1
        self.angle2=angle2
        self.angle3=angle3
    def check_angles(self):
        if self.angle1+self.angle2+self.angle3==180:
            return True
        else:
            return False
my_triangle=Triangle(45,45,90)
print my_triangle.number_of_sides
print my_triangle.check_angles()
class Equilateral(Triangle):
    angle=60
    def __init__(self):
子类同样也可以进行初始化,如果__init__()的话要注意是否还需要对父类进行初始化
        super(Equilateral,self).__init__(self.angle,self.angle,self.angle)
 调用父类进行初始化时要注意成员变量的范围
        pass
e=Equilateral()
__repr__()直接print classname 就是print __repr__()
I/O
my_list = [i**2 for i in range(1,11)]
# Generates a list of squares of the numbers 1 - 10

f = open("output.txt", "w")   #I/O第一个是文件名 后面的w应该是以可以写的形式打开

for item in my_list:
    f.write(str(item) + "\n")

f.close()

You can open files in write-only mode ("w"),
 read-only mode ("r"),
read and write mode ("r+"),
and append mode ("a", which adds any new data you write to the file to the end of the file).
f.read()是读入全体所有
f.readline()是一行一行读入

with open('text.txt','w') as textfile:
    在这个函数体里面可以对textfile进行任意操纵,它会自动关闭文件



0 0
原创粉丝点击