• 输入输出&格式化


    一、input输入函数

    input函数:获取用户输入,保存成一个字符串。哪怕你输入的是个数字1,返回给你的只会是个字符串"1",而不是整数1,例如;

    inp = input("please input your name")  # 输入操作
    print(inp)
    print(type(inp))  # 查看数据类型,str类型
    
    inp = input("pleas input your age")
    print(inp)
    print(type(inp))  # 查看数据类型,str类型
    
    inp = input("请输入一个字符:")
    print(type(inp))
    
    inp = input("请输入一个字符: ")
    print(inp)

    第一个例子:inp = input("please input your name") input函数里可以提供一个字符串,用来给用户进行输入提示的。input函数的返回值赋值给inp这个变量后,inp里就保存了用户输入的值。

    type是Python内置函数之一,非常有用,用于查看对象的数据类型,例子中的inp是一个str类型,这验证了保存成一个字符串类型。

    第二个例子:当输入的时候我们输入数字类型,但是使用type查看类型的时候,显示的是str类型。

    第三个例子:什么也不输入只是一个空的时候,显示的也是一个str类型。

    第四了例子:什么也没输入直接敲回车,结果还是str类型。

    从上面例子中的展示,不难发现,input函数将我们输入原样不动的返回给我们,并包装成一个字符串,这肯定是不行的,通常需要对用户输入的进行处理和判断。

     1.对空格输入进行处理

    inp = input("please input your name: ")
    if inp == "":  # 如果是空格则执行
        print("不能输入空格,请重新输入")

    2.将字符串转换为数字类型

    age = input("Please input your age:")
    age = int(age)  # 转换为数字
    
    if age > 18:
        print("adult")
    else:
        print("Not an adult")

    3.去除空格

    lstrip:去除开头空白

    rstrip:去除结尾空白

    strip:去除两端的空白

    inp = input("please input your name:")
    inp = inp.strip() # lstrip 和 rstrip 使用一样的
    print(inp)

    4.判断输入的字符类型

    前面我们将字符串转换为整数用的是int()函数,这种方式有危险的。比如;

    a = "123"
    a = int(a)
    print(type(a))  # 转换数字类型
    
    b = "Jerry"
    b = int(b)
    print(b)  # 报错信息 ValueError: invalid literal for int() with base 10: 'Jerry'

    对于"123"的字符串转换时没问题的,但是对于包含字符、特殊字符的字符串就没有办法转换了,就是弹出异常。所以在使用int函数之前,要先判断输入的是否是全是数字。比如;

    age = input("please input your age: ")
    if age.isdigit():  # 使用isdigit()函数判断输入的是否全是数字
        age = int(age)
        print("Your age is ", age)
    else:
        print("lllegal input !!!")

    5.阻塞或暂停程序

    print("1")
    input("请按回车继续......")  # 阻塞
    print("2")

    input函数不会将输入保存下来,只是暂停程序动作。

    二、print输入函数

    print在Python3.x是一个函数,在Python2.x是一个关键字。

    print函数已经不陌生了,用了这么久多少有点经验了,明白他的用法。

    print函数用于将内容格式化显示在标准输出上,主要指的是屏幕显示器。

    print可以接受多个字符串,字符串类型的变量或者print的最想。每个字符串用逗号 “ , ”隔开,连成一串输出,print会一次打印每个字符串,同时每遇到一个逗号就输出一个空格。

    a = "name"
    b = "please input"
    print(b, "your", a)  # 打印结果:please input your name 自动以空格分隔
    
    print(b + "your" + a)  # please inputyourname 没有分隔

    对于 print(b + "your" + a)的语句,其实是先计算b + "your" + a的值,然后在通过print打印他,print()会自动执行内部的语句。比如;

    a = 10
    b = 3
    print(sum((a, a * b)))  # 先求出a*b的乘积,在加上a的值
    
    # 结果为 40

    参数

    我们看一下print函数的原型:print(self, *args, sep=' ', end=' ', file=None)

    sep参数:分隔的符号,默认是一个空格

    end参数:打印后的结束方式,默认为换行符 .如果,设置end="",则不换行,让print在一行内连续打印。

    a = "your"
    b = "name"
    print(a, "1", b, sep=" ")  # 分隔
    print(a, "1", b, end="x")  # 结尾追加x字符

     三、print格式化输出

    在Python2.6以后,有两种格式化输出的方法。

    一种是类似C语言中printf%百分号格式化输出,也是Python最基础最常用的格式化输出方法。另一种就是str.format()的方式。

    1. % 百分号格式化输出

    print("我叫 %s 今年 %d 岁。" % ("小黑", 31))
    
    # 结果为:
    # 我叫 小黑 今年 31 岁。

    首先构造一个字符串 "我叫 %s 今年 %s 岁。" ,将其中需要用别的变量或值替代的部分,用 % 百分符号加上一个数据类型代号,比如%s、%d来代替,然后在字符串的后面用%加一个同样的数量的变量或值得元组。

    也就是前面有多少个%符号,后面就要提供多少个参数值,每个参数值之间用逗号隔开,所有的参数用圆括号括起来,每个参数前面的% 要一一对应,并且数据类型也要能够合法对应。

    格式化符号

     格式化操作辅助命令

     经典例子:

    s = "i am %s." % "jack"
    
    s = "i am %s age %d" % ("jack", 20)
    
    s = "percent %.2f" % 99.974154
    
    s = "i am %(name)s age %(age)d" % {"name": "jack", "age": 20}
    
    s = "i am %(k1).2f" % {"k1": 1212.121212}
    
    s = "i am %.2f %% " % 1212.121212
    
    print(s)

    需要说明的是,如果你想在Print中打印一个%百分号本身,那么需要使用 %% 两个百分号转义一个百分号。

    如果你对print复杂的格式控制无爱,对美观没有要求,那么傻瓜式的一路用%s占位符,可以省事。

    print("%s %s %s %s %s" % (a, b, c, d, e))

    2.str.format()格式化输出

    这种格式化方法是2.6以后出现的,新增了一种格式化字符串的函数 str.format(),他增强了字符串格式化的功能。

    基本语法是通过 { } 和 : 来代替以前的 %。

    format函数可以接受不限个参数,位置可以不按顺序。

  • 相关阅读:
    PHP版根据经纬度和半径计算出经纬度的范围
    使用GPS经纬度定位附近地点(某一点范围内查询)
    sql语句查询经纬度范围
    Android检测是否安装了指定应用
    Android 定时器实现的几种方式和removeCallbacks失效问题详解
    Android Service与Activity之间通信的几种方式
    Android操作系统11种传感器介绍
    Android录音--AudioRecord、MediaRecorder
    Android广播接收者应用(电话拦截器)
    收藏夹
  • 原文地址:https://www.cnblogs.com/xiaohei001/p/10111130.html
Copyright © 2020-2023  润新知