python笔记(二)

本文概述了Python编程中的关键概念,包括用户输入的input()函数,while循环的应用,如何定义和传递关键字参数的函数,以及类的创建、方法、继承和实例化。还介绍了函数的默认参数、模块导入和类的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10.用户输入和循环

input()函数,接受用户输入,

name=input("input your name")
print(name)

while循环:

prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
message = "" 
while message != 'quit':
      message = input(prompt)
      print(message)

删除列表中所有的特定的值:

c=['a','b','b','c']
while 'b' in c:
    c.remove('b')
print(c)

11.函数

使用def定义函数。
关键字实参 是传递给函数的名称—值对。你直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆(不会得到名为Hamster的harry这样的结果)。
关键字实参让 你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def describe_pet(animal_type, pet_name):
    """显示宠物的信息"""
    print("\nI have a " + animal_type + ".")
    print("My " + animal_type + "'s name is " + pet_name.title() + ".")
    describe_pet(animal_type='hamster', pet_name='harry')

编写函数时,可以为形参设置默认值:

def describe_pet(animal_type, pet_name='dog'):
    """显示宠物的信息"""
    print("\nI have a " + animal_type + ".")
    print("My " + animal_type + "'s name is " + pet_name.title() + ".")
    describe_pet(animal_type='hamster', pet_name='harry')

函数也可以处理列表中的值,若不想影响原有的列表,可以利用切片的方法,传递列表的副本。
fun(c[:])

若预先不知道函数的实参个数,可以利用如下形式:

def make(*poping):
    print(poping)
 make('aaa','bbb','ccc')

将函数存储到模块中:

(1)导入整个模块: 要让函数是可导的,需要先创建模块(以.py为结尾的文件),例如pizza,之后在相同目录下创建另一个文件,直接使用

import pizza

使用pizza.内部函数名,即可使用pizza模块内部的函数。
(2)导入特定的函数:

from module_name import function_name

(3)使用as方式指定别名

from module_name import function_name as fun_name

(4)导入模块中的所有函数:

from module_name import *

12.类

 class Dog():
     """一次模拟小狗的简单尝试"""   
     def __init__(self, name, age):
          """初始化属性name和age"""
         self.name = name
         self.age = age
     def sit(self):
          """模拟小狗被命令时蹲下"""
          print(self.name.title() + " is now sitting.")
     def roll_over(self):
          """模拟小狗被命令时打滚"""
          print(self.name.title() + " rolled over!")

类中的函数称为方法,方法__init__() 是一个特殊的方法,每当你根 据Dog 类创建新实例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突。 我们将方法__init__() 定义成了包含三个形参:self 、name 和age 。在这个方法的定义中,形参self 必不可少,还必须位于其他形参的前面。为何必须在方法定义中包 含形参self 呢?因为Python调用这个__init__() 方法来创建Dog 实例时,将自动传入实参self 。每个与类相关联的方法调用都自动传递实参self ,它是一个指向实例本身 的引用,让实例能够访问类中的属性和方法。
以self 为前缀的变量都可供类中的所有方法使用,我们还可以通过类的任何实例来访问这些变量。self.name = name 获取存储在形 参name 中的值,并将其存储到变量name 中,然后该变量被关联到当前创建的实例。self.age = age 的作用与此类似。像这样可通过实例访问的变量称为属性。

init方法返回该类的信息

class Dog():
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def sit(self):
        print(self.name.title()+"is sitting")
mydog=Dog('zhangbing','6')
print(mydog.name)#访问属性
mydog.sit()#访问方法

继承

子类继承其父类所有的方法和属性,实例使用方法如下:

 class ElectricCar(Car):#括号中填写父类名称
      """电动汽车的独特之处"""
     def __init__(self, make, model, year):
          """初始化父类的属性"""
         super().__init__(make, model, year)#super访问父类,并调用父类的init函数,获得信息
         self.battery_size = 70 #子类单独的属性

重写父类的方法:可在子类中定义一个这样的方法,即它与要重写的父类方法同名。这样,Python将不会考虑这 个父类方法,而只关注你在子类中定义的相应方法。
执行时只会使用子类中重写后的方法。

将实例当作类,类的一部分可以作为一个大类属性,例如下方电瓶车类中一个属性为另一个类电瓶:

 class Battery():
      """一次模拟电动汽车电瓶的简单尝试""" 
     def __init__(self, battery_size=70):
          """初始化电瓶的属性"""
          self.battery_size = battery_size 
     def describe_battery(self):
          """打印一条描述电瓶容量的消息"""
          print("This car has a " + str(self.battery_size) + "-kWh battery.")
  class ElectricCar(Car):
      """电动汽车的独特之处"""
      def __init__(self, make, model, year):
          """          初始化父类的属性,再初始化电动汽车特有的属性"""          
         super().__init__(make, model, year) 
         self.battery = Battery()
  my_tesla = ElectricCar('tesla', 'model s', 2016)
  print(my_tesla.get_descriptive_name())  my_tesla.battery.describe_battery()

导入类
from 文件名 import 类名a,类名b…
导入整个模块,
import 文件名
from xxx import xxx
可以通过该方法使用其它标准库的函数和类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值