首页 > 编程语言 >12.19---python

12.19---python

时间:2023-12-20 10:01:29浏览次数:36  
标签:__ 字节 python self --- print model line 12.19

seek()方法语法如下:
file.seek(offset[,whece])

offset - - 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。

whence:可选,默认值为0。给offset定义一个参数,表示要从那个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

#返回值:如果操作成功,则返回新的文件位置,如果操作失败,则函数返回-1。

 

以下演示了seek()方法的使用:

f = open('workfile.txt','rb+')
f.write(b'0123456789abcdef')    #该文件有16个字节
print(f.seek(5))        #移动到文件的第六个字节

因为0代表的是开头,从0开始算5个字节后,第六个字节就是新的‘开头’,所以打印的结果是5

print(f.seek(5))
print(f.read(1))

在偏移量移动后,现在读取第一个字节就是   b'5'

print(f.seek(-3,2))    #移动到文件倒数第三个字节
print(f.read(1))

因为是负数,所以要从倒数第三个字节开始,而文本有16个字节,倒数带三个字节前面还有13个字节,因此f.seek(-3,2)打印的结果是13。

其次从倒数第三个字节开始算的第一个字节是‘d',因此f.read(1)得出的结果是b'd'。

 

www.runoob1.com
www.runoob2.com
www.runoob3.com
www.runoob4.com
www.runoob5.com

文件runoob.txt的内容如上

 

#打开文件
fo = open('runoob.txt','r+')
print('文件名为:',fo.name)

line = fo.readline()
print('读取的数据为:%s' % (line))

#重新设置文件读取指针到开头
fo.seek(0,0)
line = fo.readline()
print('读取的数据为;%s' %(line))

#关闭文件
fo.close()

以上两个得到的实例结果一致

 

 有趣的是当你输入并打印两次line的表达式以及结果的话会发生什么呢

 

fo.seek(0,0)
line = fo.readline()
print('读取的数据为;%s' %(line))
line = fo.readline()
print('读取的数据为;%s' %(line))

 

它得到的结果是:

 

类的继承:

class Car:                                    #1
    """一次模拟汽车的简单尝试"""
    
    def __init__(self,make,model,year):
        """初始化描述汽车的属性"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0
        
    def descriptive_name(self):
        """返回整洁的描述性信息"""
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name.title()
    
    def read_odometer(self):
        """打印一条指出汽车里程的信息"""
        print(f"This car has {self.odometer_reading} miles on it.")
        
    def update_odmeter(self,mileage):
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")
            
    def increment_odometer(self,miles):
        self.odometer_reading += miles
    
class ElectricCar(Car):                          #2
    """电动汽车的独特之处"""
    
    def __init__(self,make,model,year):                #3
        """初始化父类的属性"""
        super().__init__(make,model,year)              #4
    
my_tesla = ElectricCar('雅迪','model s ','2023')          #5
print(my_tesla.descriptive_name())

#1.创建子类时,父类必须包含在当前文件中,且位于子类前面

#2.定义了子类ElectricCar。定义子类时,必须在圆括号内指定父类的名称。

#3.方法__init__()接受创建Car实例所需的信息。

#4.super()是一个特殊的函数,让你能够调用父类的方法。调用Car类的方法__init__(),让ElectricCar实力包含这个方法中定义的所有属性。父类也被称为超类。

#5.创建ElectricCar类的一个实例,并将其赋给变量my_tesla。

 

class Car:
    --snip--
    
class ElectricCar(Car):
    """电动汽车的独特之处"""
    
    def __init__(self,make,model,year):
        """
     初始化父类的属性 
     再初始化电动汽车特有的属性 
     """ super().__init__(make,model,year)
     self.battery_size = 75                          #1

   def describe_battery(self):                         #2
    """打印一条描述电瓶容量的消息"""
    print(f"This car has a {self.battery_size}-kwh battery.") my_tesla = ElectricCar('雅迪','model s ','2023') print(my_tesla.descriptive_name())
my_tesla.describe_battery()

 

让一个类继承另一个类后,就可以添加区分子类和父类所需的新属性和新方法了。

#1.添加了新属性self.battery_size,并设置其初始值。根据ElectricCar类创建的所有实例都将包含该属性。

#2.添加了新方法describe_battery()的方法,打印有关电瓶的信息

 

标签:__,字节,python,self,---,print,model,line,12.19
From: https://www.cnblogs.com/jc13052/p/17913647.html

相关文章

  • 入门篇-其之十一-流程控制之break和continue关键字
    本文中使用到的工具是IntellijIDEA和JDK8,需要安装两款工具的请查看这两篇教程:点我查看安装JDK8/11/17教程、点我查看安装IntellijIDEA教程。一、循环的嵌套和前面学习if一样,循环也可以相互搭配嵌套,即一个循环内部还包含一个循环。在编写嵌套循环时,三种循环(for、while、do-w......
  • ml.net例子笔记4-ml.net v2版本例子运行
    1Ml.NET版本更新当前的Microsoft.ML的软件版本如下:https://gitee.com/mirrors_feiyun0112/machinelearning-samples.zh-cn例子使用版本为1.6.0例子工程更换版本的办法:1Directory.Build.propsnuget.config修改samples目录下文件Directory.Build.props的内容~~~~*......
  • 界面控件DevExpress v23.2全新发布 - 官宣正式支持.NET 8
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力......
  • ethtool -k选项
    1FeaturesforenP2p35s0:2rx-checksumming:on3tx-checksumming:on4tx-checksum-ipv4:on5tx-checksum-ip-generic:off[fixed]6tx-checksum-ipv6:on7tx-checksum-fcoe-crc:off[fixed]8tx-checksum-sctp:off[fixed]9sc......
  • 【Python微信机器人】第六篇:优化使用方式,可pip安装
    优化内容这篇不聊技术点,说一下优化后的Python机器人代码怎么使用,优化内容如下:将hook库独立成一个库,发布到pypi,可使用pip安装将微信相关的代码发布成另一个库,也可以pip安装git仓库统一,以后都在这个仓库更新,不再一篇文章一个仓库开始建群,根据群里反馈增加功能和修复bug使用......
  • linux中部署python项目
    参考这篇博客:https://blog.csdn.net/smilehappiness/article/details/1173379431.首先查看python的版本:python-V2.安装python:3.安装虚拟环境报错1: 解决办法:export CURL_CA_BUNDLE="/etc/pki/tls/certs/ca-bundle.crt"https://3ms.huawei.com/km/blogs/details/14442367htt......
  • subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero
    一、原因pytorch版本大于1.5二、解决1、降低pytorch版本将pytorch版本降到1.5以下2、禁用ninjiapytorch默认使用ninjia作为backend,将其禁用。替换为以下代码setup(...,cmdclass={#'build_ext':BuildExtension,'build_ext':BuildExtensi......
  • Python学习的相关资源
    Python是一门强大而且多用途的编程语言,在数据科学、机器学习、Web开发和软件工程等多个行业中都得到了广泛应用。 如果老师们和同学们对学习Python感兴趣,网上有很多免费Python资源可供使用,包括许多免费网站,提供教程、练习和交互式编程环境。 编程语言的学习不同于一般的......
  • 【scikit-learn基础】--『预处理』之 分类编码
    数据的预处理是数据分析,或者机器学习训练前的重要步骤。通过数据预处理,可以提高数据质量,处理数据的缺失值、异常值和重复值等问题,增加数据的准确性和可靠性整合不同数据,数据的来源和结构可能多种多样,分析和训练前要整合成一个数据集提高数据性能,对数据的值进行变换,规约等(比如......
  • CF1872C-Non-coprime-Split-题解
    title:CF1872CNon-coprimeSplit题解date:2023-09-1821:09:14categories:-题解一个很怪的分讨想法。当\(l\neqr\)时,区间内一定有一个偶数。设最大的偶数为\(x\),那么当\(x>2\)时,可以得到一组解\((2,x-2)\),此时\(\gcd(2,x-2)=2\)。当\(l=r\)时,问题......