zoukankan      html  css  js  c++  java
  • 数据类型/文件操作

    基础数据类型

    1.整数类型 (int) 浮点数类型(float)long(长整型)注意:在Python3里不再有long类型了,全都是int

    2.字符串数据类型(str)

    >>> name = "小黑"  #字符串
    >>> age = "20"      #字符串
    >>> age2 = 20      #int
    msg = '''My name is taibai, I am 22 years old!'''  
    
    hometown = 'ShanDong'  
    
    #在python中单双引号都可以表示字符串
    View Code

    多引号什么作用呢?作用就是多行字符串必须用多引号

    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)
    View Code

    字符串只可以进行“加”,“乘”运算

    加运算:
    name="小黑"
    age="20"   注意:必须是字符串格式     age=20    报错
    print(name+age)  #输出:小黑20
    
    乘运算:
    name="小黑"
    print(name*10)  输出:小黑小黑小黑小黑小黑小黑小黑小黑小黑小黑
    View Code

    3.布尔值(True,False) 

    a=1
    b=2
    print(a>b)    输出:False
    View Code

    如何查看是什么数据类型呢?

    print(type(1))
    print(type("你好"))
    print(type(True))
    print(type(3.14))   
    
    输出:
    <class 'int'>
    <class 'str'>
    <class 'bool'>
    <class 'float'>
    View Code

     格式化输出

    程序的交互:

    name = input("请输入用户名:")
    
    print(name)    注意:input输入得到的都是str类型的

    把用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

    ------------ info of Alex Li ------
    Name  : 小黑
    Age   : 22
    job   : student
    Hobbie: girl
    ------------- end -----------------

    先把需要输出的格式准备好,需要填写信息的地方放置个占位符(%s,%d,%f),再把字符串里的占位符与外部的变量做个映射关系就好啦

    name = input("Name:")
    age = input("Age:")
    job = input("Job:")
    hobbie = input("Hobbie:")
    
    info = '''
    ------------ info of %s ----------
    Name  : %s  #代表 name 
    Age   : %s  #代表 age  
    job   : %s  #代表 job 
    Hobbie: %s  #代表 hobbie 
    ------------- end -----------------
    ''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
    
    print(info)
    View Code
    #格式化输出
    name = input('请输入你的名字:')
    age = input('请输入你的年龄:')
    height = input('请输入你的身高:')
    
    sc = '我叫%s 年龄是%s 身高%s' %(name,age,height)
    print(sc)
    
    输出:
    请输入你的名字:小黑
    请输入你的年龄:20
    请输入你的身高:175
    我叫小黑 年龄是20 身高175    
    View Code
    问题:现在有这么行代码
    
    msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18)
    print(msg)
    
    这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?
    
    msg = "我是%s,年龄%d,目前学习进度为80%%"%('金鑫',18)
    print(msg)
    这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
    小问题

     基本运算符 

      计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

    算数运算

    以下假设变量:a=10,b=20

    比较运算

    以下假设变量:a=10,b=20

    逻辑运算

    文件操作

    r:以只读的方式的打开文件。文件的指针将放在文件的开头,这是默认的模式
    rb:以二进制只读的方式打开,文件的指针将放在文件的开头。
    r+:以读写的方式打开一个文件,文件的指针将放在文件的开头。
    rb+:以二进制读写的方式打开一个文件,文件的指针将放在文件的开头。
    
    w:以写入的方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
    wb:以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖,如果该文件不存在,则创建新文件。
    w+:以读写方式打开一个文件。如果该文件已存在,则将其覆盖,如果该文件不存在,则创建新文件。
    
    a:以追加方式打开一个文件,如果该文件以存在,文件指针将会放在文件结尾,也就是说新的内容将会被写入到以有内容之后,如果该文件不存在,则创建新文件来读写
    ab:以二进制追加方式打开一个文件,如果该文件以存在,文件指针将会放在文件结尾,也就是说新的内容将会被写入到以有内容之后,如果该文件不存在,则创建新文件来读写
    a+:以读写方式打开一个文件,如果该文件以存在,文件指针将会放在文件结尾,文件打开会是追加模式,如果该文件不存在,则创建新文件来读写
    ab+:以二进制追加方式打开一个文件,如果该文件以存在,则文件指针将会放在文件结尾,,如果该文件不存在,则创建新文件来读写

     

    #读取文件
    f = open('文件内容', mode='r', encoding='utf-8')
    content = f.read()
    print(content)
    f.close
    
    #bytes类型读文件,读非文字类型的文件
    f = open('文件内容', mode='rb')
    content=f.read()
    print(content)
    f.close
    #写文件
    #没文件,先创建再写 #先将原文件内容删除 f
    = open('文件内容', mode='w', encoding='utf-8') f.write("python牛逼") f.close # bytes类型写文件 f = open('文件内容', mode='wb') f.write("python很好用".encode('utf-8')) f.close
    #追加,不清除原文件的基础上追加
    f = open('文件内容', mode='a', encoding='utf-8')
    f.write("你好")
    f.close
    
    #追加,执行两次。先写后读
    f = open('文件内容', mode='a+', encoding='utf-8')
    f.write("你好")
    f.seek(0)
    print(f.read())
    f.close
    
    
    #bytes类型追加,不清除原文件的基础上追加
    f = open('文件内容', mode='ab')
    f.write("你好".encode('utf-8'))
    f.close
    # 读写操作,先把原文章读出来,然后写入。只能进行两步
    f = open('文件内容', mode='r+', encoding='utf-8')
    print(f.read())
    f.write('小黑')
    f.close
    
    
    # 写读操作,先把东西写进去把原来文件中的某一块覆盖掉,然后读出没覆盖的内容
    f = open('文件内容', mode='r+', encoding='utf-8')
    f.write('小黑')
    print(f.read())
    f.close
    
    # bytes类型读写
    f = open('文件内容', mode='r+b')
    print(f.read())
    f.write('小白'.encode('utf-8'))
    f.close()
    
    
    #先清除原文件内容,然后写
    f = open('文件内容', mode='w+', encoding='utf-8')
    f.write('今天天气真好')
    f.seek(0)#调光标的位置
    print(f.read())
    f.close
    f.seek(0)   #调光标到0的位置,按字节找光标 一个汉字三个字节
    f.read(3)   #read读出来的都是字符
    f.tell()    #告诉你光标的位置
    f.seek((f.tell())-3)    #光标向后移动三个字节
    f.readline()   #一行一行读
    f.readlines()  #每一行当成列表的一个元素,添加到列表中
    f.truncate(3)   #对原文件进行截取字节
    for line in f:   #遍历文件中的每一行
        print(line)
    
    
    #推荐打开文件的方式
    with open('文件内容', mode='w+', encoding='utf-8') as f:  #可打开多个文件
        pass

     

  • 相关阅读:
    课堂作业
    大道至简读后感
    读《大道至简》有感
    大道至简第四章-流于形式的沟通
    Java课堂动手动脑-截图集锦
    Java动手动脑课后作业1-求创建对象个数
    Java-消息框显示两整数加减乘除
    JAVA-实践问题
    Java-整数相加求和
    大道至简-是懒人造就了方法
  • 原文地址:https://www.cnblogs.com/yzcstart/p/10489221.html
Copyright © 2011-2022 走看看