Python语法学习

本文是根据Python从入门到实践这本书开始复习,学习。供各位参考(1-10章)



前言

每次看完就忘,忘了又看,反反复复。这里提供快捷了解python语法方式


提示:以下是本篇文章正文内容,下面案例可供参考

一、Python基础语法

1.三个简单函数

字符串是""双引号引起来,与其他语言不同,

name="adada"
print(name.title())
print(name.upper())
print(name.lower())

title()功能是将字符串以首字母大写方式呈现

upper()将字符串所有字母大写

 lower()将所有字符串字母小写

2.删除空白函数

name="  adada   "
print(name.strip())
print(name.rstrip())
print(name.lstrip())

strip()删除字符串两边的空白

rstrip()删除字符串右边空白

lstrip()删除字符串左边空白

3.Python加减乘除计算注意点

平方表示:x**x

python浮点数计算是可能不一定精确。小数点位数不确定。

在Python3以上时,3/2=1.5而不是1。与python2不一样。

4.python列表

Python列表用[]表示,并用,逗号分隔其中元素。下标从0开始。

my=['honda','yamaha','suzuki']

向列表添加元素:my.append('元素')

向列表插入指定位置元素:my.insert(index,'元素')

从列表删除指定位置元素:del my[index],且没有返回值。直接对列表操作。从中删除

将列表的值删除,且有返回值,从末尾删除:my.pop(),被弹出的元素不在列表,可用变量接收。

知道删除的值,根据值删除:my.remove('元素'),这应该也算没有返回值

注意:python3里,使用range()返回的并不是列表,而是一个整数序列的对象,若想变成列表

list(range(5))

 5.列表排序

 sort()方法,可以对列表进行永久性修改的排序,按照字母顺序,sort(reverse=True)则是按照字母顺序相反排序。

sorted()方法,对列表进行临时排序,不会对原来的列表造成影响。同样sorted(reverse=True)相反排序。

reverse()是对列表进行永久性修改的反转列表。

对列表的切片操作相当于是复制了一份列表,在切片后的列表进行一系列操作时,对源列表没有任何关系————my[:]是对整个列表复制,且切片操作也是左闭右开区间my[1:3]从1开始取到第二位。注意:切片与列表赋值操作不一样,赋值只是具有相同的内存地址,并不像切片一样有两个一模一样的列表,赋值还是只有一个列表。若不想修改原有列表可用切片操作(字符串也可以切片)

6.for循环书写格式

for 变量 in 列表: 

这是一般的for循环书写格式,对列表进行遍历。

Python使用range(x,y)函数,(左闭右开)来创建简易列表使用list(range(x,y))

在列表里进行for循环:[ value**2 for value in range(1,11)]

7.元组的介绍与使用

元组是用()圆括号来定义的,而且元组不可以修改。一旦定义,只能覆盖重新定义才能增加新数据,取元组里的元素和列表一样,通过元素索引下标来取。

8.if语句的使用 

if是判断语句:通常书写格式为

if x==xx: 在条件中,可以使用and、or来连接多个条件。

        print()

elif xx>dd:    注意这里不是elseif 我刚开始习惯性打这个

        print()

else:

        print()

检查列表是否包特定值,用 in (not in) 判断结果会打印Ture、False 

if x in xx:

        print()

9.字典的使用 

字典是键值对方式呈现,通过alien={}创建新字典,以{'key':'value','key':'value'},访问字典的值以字典的名和键来访问

例如

alien={'color':'green','size':10}
alien['color']
alien['size']

可以获取字典的值,也可以通过此方式添加字典的键值对。

修改键值对,直接使用alien['color']='black'

删除键值对:以del alien['color']即可删除这对。

遍历字典是通过for和字典所带的方法items(),items()方法返回的是一个键-值对列表

for key, value in alien.items(),key与value分别取出alien的键值对。

遍历字典获取所有字典的键,用方法keys()

for name in alien.keys(),key()方法返回的是一个列表

按顺序遍历字典所有的键(此顺序只是暂时的并不改变原来顺序)

for name in sorted(alien.keys())

遍历字典所有的值用方法values(),他返回的也是值的列表

for value in alien.values()

10.用户输入与while循环使用

 函数input()可以接受用户输入的一个参数,要用一个变量来接受input()函数。input()函数所输入的为字符串,若有需要,可以通过强制类型转换为需要的类型。

message=input("请输入姓名")
print(message)

while循环很简单:while 变量(>、<)条件 :      注意不要缺少:

                                        print() 

while循环通过break直接终止退出循环,与continue不同,continue只是不执行这次循环、但是下一次还是执行的,不会退出循环。 

11.函数(形参、实参、任意参数)

函数的定义方法:     注意不要缺少:

def hello():
    print("hello world")

hello()

 函数既可以有参数,也可以没有参数,还可以多个参数。定义函数时括号内叫形参,调用函数时是实参。多个参数要注意顺序,当然也可以直接指定(直接将实参名称与值联系)。

def hello(name):
    print("hello world"+name.title())

hello("张三")#或hello(name="张三")

函数也可以有默认值,若在调用函数时,每个形参都指定了具体值,则不用默认值,没指定具体,就用默认值,默认值是可以改变的。

def helloworld(name,password=1234):
    print("尊敬的"+name+"您的密码是"+str(password))

helloworld("李四")
helloworld("李四",5678)

若想要传递的函数参数多个,且不确定,可用形参 *变量 ,这样不管参数是一个还是多个都可以处理。

def helloworld(*names):
    for i in names:
        print(i)

helloworld("李四","王五","赵六")

在形参中,**变量表示形参是一个空字典

def bulid_profile(first,last,**user_info):
    profile={}
    profile['first_name']=first
    profile['last_name']=last
    for key,value in user_info.items():
        profile[key]=value
    return profile

user_info1=bulid_profile("张","三",location='princeton',field='physics')
print(user_info1)

 这里要看到,在调用函数时,后面两者是用=赋值,而不是像字典用:,调用函数就是要定向赋值。。具体一对一。在定义函数和调用函数时,形参的参数赋值都用=

12.函数导入

注意:导入整个模块后,调用函数还是要先模块名.函数名() ,

可以为了方便将模块指定别名(import first as f)

import first

first.hello("李四")

导入特定函数,调用时不用加上模块名,导入模块所有函数调用也不用模块名(from first import * )

from first import hello

hello("李四")

13.类的使用

超级无敌巨重要!!!!

类,白话来说就是抽象为一类东西,比如狗、猫、老虎都属于动物这一个大类。都是抽象出来的,他们三者都有一些共同的特质(活着、会叫、会饿、会撒娇.....)这些相当于类的属性。为什么抽象成类呢,其实是为了代码利用率更高一些。这就是面向对象编程的好处,我的理解是:小狗是一个具体的东西,具体就是对象,类是一个抽象的东西,小狗就是从抽象里的一种具体的东西,就像小狗与动物的关系,小狗属于动物,但是动物不属于小狗,动物拥有的,小狗也基本都有。下面我来创建动物这个类。

class Animals():#类名,开头__init__两边两个下划线,self在init()必须第一位
    def __init__(self,name,age):#这个是内置函数,必须写,self不需要赋值
        self.name=name#类内部变量使用self.x这样与外部变量区分
        self.age=age#self是指向实例本身的引用。,能让实例访问类中属性和方法
#以self开头的变量都可以供类中所有方法使用。
    def run(self):
        print(self.name+"会跑")

    def ages(self):
        print("他的年龄是"+str(self.age))
Dog=Animals("小狗",2)#左边是实例化对象,右边是类
Dog.run()
Dog.ages()

给属性指定默认值,这样在init()方法就不需要包含这个形参了  

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0 #默认值

    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles")

mycar=Car("Audi","a4","2023")
mycar.read_odometer()

修改指定默认值,直接用对象.属性 ,也可以使用方法对self.sodometer_reading重新赋值

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0

    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles")

    def update_olometer(self,nowmeter):
        self.odometer_reading=nowmeter #将函数形参赋值给self

mycar=Car("Audi","a4","2023")
mycar.odometer_reading=100

14.类的继承 

一个类继承另一个类时时,他将自动获得另一个类的所有属性和方法,原有的叫父类、新类叫子类,子类继承父类的所有属性和方法,同时还可以定义自己的属性和方法。

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0

    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles")

    def update_olometer(self,nowmeter):
        self.odometer_reading=nowmeter #将函数形参赋值给self
    def get_descriptive_name(self):
        long_name=str(self.year)+" "+self.make+' '+self.model
        return long_name

class ElectricCar(Car):#继承Car类
    def __init__(self,make,model,year):
        super().__init__(make,model,year)#初始化父类属性,使子类包含父类所有属性
        self.batterysize=70#子类自定义属性

    def batterysizeprint(self):#子类自定义方法
        print("目前还有"+str(self.batterysize)+"的电")

mycar=ElectricCar("Audi","a4","2023")
mycar.odometer_reading=50
mycar.read_odometer()

my_car=mycar.get_descriptive_name()
print(my_car)

mycar.batterysizeprint()

 我在这里遇到报错问题!(意思是int对象不可调用)导致这种现象原因是函数名与变量名一样了,所以一定要注意!

'int' object is not callable

 重写父类方法其实很简单,就是他们共有的方法不符合子类所具有的性质,怎么办?直接在子类对一模一样的名字的方法改写,符合子类性质即可。不用担心子类是否会调用父类同名方法,在调用时,Python会自动忽视父类同名方法。(我觉得就是你创建的对象是哪个类的就会执行哪个类的方法,不用太纠结

15将实例用作属性

这个知识点我还是拿出来,因为我觉得挺有趣,而且挺强大的功能。感觉很有用。

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0

    def read_odometer(self):
        print("this car has "+str(self.odometer_reading)+" miles")

    def update_olometer(self,nowmeter):
        self.odometer_reading=nowmeter #将函数形参赋值给self
    def get_descriptive_name(self):
        long_name=str(self.year)+" "+self.make+' '+self.model
        return long_name

class ElectricCar(Car):#继承Car类
    def __init__(self,make,model,year):
        super().__init__(make,model,year)#初始化父类属性,使子类包含父类所有属性
        self.battery=Battery() #这里,将Battery()的实例赋值给ElectricCar类的一个属性,每次创建ElectricCar实例时会自动创建Battery()实例

class Battery():
    def __init__(self,battery_size=70):
        self.battery_size=battery_size
    def batterysizeprint(self):
        print("目前还有"+str(self.battery_size)+"的电")

mycar=ElectricCar("Audi","a4","2023")
mycar.battery.batterysizeprint()
#这里就是创建了ElectricCar实例mycar,然后mycar调用类本身属性battery也就相当于调用Battery()类,

 16.Python标准库中的collectons模块中一个类OrderedDict

这个类的功能就是在添加字典的键值对时,记录添加键值对的顺序

from collections import OrderedDict

favourite_language=OrderedDict()
favourite_language['jen']='python'
favourite_language['sarch']='c'
favourite_language['edward']='ruby'
favourite_language["phil"]='python'
for name,language in favourite_language.items():
    print(name.title()+" 's favourite language is"+language.title())

有没有大神知道我这里定义字典键用" "和' '有没有区别。不懂。 好像没区别,应该是

 16.文件读取、写入与异常

with open('Python.txt') as file_object:#打开一个文件,并返回一个文件对象,
    contents=file_object.read()#读取文件的内容
    print(contents)

若使用绝对路径寻找文件在文件路径使用反斜杠(\) 

with open('Python.txt') as file_object:#打开一个文件,并返回一个文件对象,
   for line in file_object:#逐行读取
    print(line.rstrip())#去除末尾空白行

with open('Python.txt') as file_object:#打开一个文件,并返回一个文件对象,
    contents=file_object.readline()#读取文件的内容每一行,并存为列表
    for line in contents:
        print(line)

 文件写入:

filename='programming.txt'
with open(filename,'w') as file_object:#打开文件对象,以写的方式
    file_object.write("I love Python.\n")#写入




对于已存在的文件,若用w方式,会覆盖原有文件内容,想附加文件内容
filename='programming.txt'
with open(filename,'a') as file_object:#打开文件对象,以写的方式
    file_object.write("I love c.\n")#写入

异常处理:

异常是使用try-except代码块处理的, try-except代码块让python执行指定操作,同时告诉python发生异常时该怎么办,使用try-except代码块,即使遇到异常,程序也能继续运行,显示你编写的友好错误信息,而不至于让用户迷糊的traceback

使用try-except,一般try部分是放入可能导致错误的代码行,如果执行没问题,Python直接跳出eexcept代码块,如果报错,Python执行except,如果正常执行try代码块,则可以把后继代码放入else中,依赖于try代码块成功执行的代码都放入else中,

while True:
    first_number=input("\nFirst number")
    if first_number=='q':
        break
    second_number=input("second number")
    try:
        answer=int(first_number)/int(second_number)#强制转换
    except ZeroDivisionError:
        print("除数不能为0")
    else:
        print(answer)

 17.最后一点点

方法split(),作用是以空格为拆分符,将字符串拆分为多个部分,并将这些部分存储到一个列表结果中。

Python中有一个pass语句,就是告诉Python什么都不需要做,直接跳过。

18.存储数据:

这个挺重要的,是关于json的。

json.dump():这个存储数据,具有两个实参(要存储的数据及可用于存储数据的文件对象):用来存储数字列表

import json
number=[1,2,3,4,5,6,7]
filename='number.json'#空文件
with open(filename,'w') as file_object:
    json.dump(number,file_object)

json.load():将数据读取到内存中,加载文件的信息

import json
filename='number.json'
with open(filename) as file_object:
    number=json.load(file_object)
    print(number)

代码重构其实就是把一个函数拆分细分多个函数,划分更加具体。 


总结

        以上就是要讲的内容,本文仅仅简单介绍了Python基本语法使用,后期会继续学这本书后面项目部分的内容。感谢观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!关于Python基本语法学习,我可以为你提供一些指导。Python是一种高级编程语言,它具有简洁明了的语法,非常适合初学者入门。 首先,Python的注释使用井号(#)开头,可以在代码中添加注释来解释代码的功能和目的。 变量是存储数据的容器,你可以使用等号(=)来给变量赋值。例如: ```python name = 'John' age = 25 ``` Python中的基本数据类型包括整数(int)、浮点数(float)、布尔值(bool)、字符串(str)等。你可以直接使用这些数据类型来操作数据。 条件语句可以帮助你根据条件执行不同的代码块。例如,使用if语句来判断某个条件是否为真,并在条件满足时执行相应的代码块。例如: ```python if age >= 18: print("成年人") else: print("未成年人") ``` 循环语句可以帮助你重复执行一段代码。Python中有两种常用的循环:for循环和while循环。例如,使用for循环遍历一个列表: ```python fruits = ['apple', 'banana', 'orange'] for fruit in fruits: print(fruit) ``` 函数是一段完成特定任务的代码块,可以重复使用。你可以使用def关键字来定义函数,并使用return语句返回结果。例如: ```python def add_numbers(a, b): return a + b result = add_numbers(3, 5) print(result) # 输出:8 ``` 这只是Python基本语法的一小部分,如果你有具体的问题或需要更深入的学习,可以告诉我。我会尽力帮助你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值