• Python全栈开发【基础-07】与用户交互


    专栏介绍:

    本专栏为Python全栈开发系列文章,技术包括Python基础、函数、文件、面向对象、网络编程、并发编程、MySQL数据库、HTML、JavaScript、CSS、JQuery、bootstrap、WSGI、Django、Flask、后期运维、git使用、Linux运维、Python结合Shell结合场景开发自动化脚本等一系列文章. 从入门到实战。 文章内容来自博主学习笔记,修整发布。

    一、与用户交互

    • 接收用户输入
    • 格式化输出

    1.1 接受用户输入(input)

    # 如何接受用户的输入
    username = input("请您输入您的账号:")
    print(username, type(username))# 在这里input传入的东西都是字符串的类型
    请您输入您的账号:yankerp
    engo <class 'str'>
    
    请您输入您的账号:123
    123 <class 'str'># 这里还是字符串类型,
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在python3当中input会将用户输入的任意类型数据都存成字符串的类型。然后保存起来赋值给前面的变量名。

    age = input("请您输入您的年龄:")
    print(age, type(age))
    
    请您输入您的年龄:12
    12 <class 'str'>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    当用户输入12的时候确实能够取到数字,但是在input处理的过程当中把12加了引号形成了一个字符串.

    age = input("请您输入您的年龄:")
    age = int(age)
    print(age, type(age))
    print(age > 18)
    
    请您输入您的年龄:12
    12 <class 'int'>
    False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    int只能将纯数字的字符串转成整型!!!

    python2当中有一个raw_input 用法与python3的input一模一样,python2当中的input要求用户必须输入一个明确的数据类型,输入的是什么类型,就给你存放成什么类型

      >>> info = input(">>>>>>>")
      >>>>>>>112
      >>> print(type(info))
      <type 'int'>
      >>> info = input(">>>>>>>")
      >>>>>>>1.2
      >>> print(type(info))
      <type 'float'>
      >>> info = input(">>>>>>>")
      >>>>>>>[1,2,3]
      >>> print(type(info))
      <type 'list'>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    1.2 格式化输出

    • %号
    • str.format
    • f-strings

    %的方式「按照位置传值」

    print("my name is %s, my age is %s" %('yanzan', '19'))
    
    • 1

    按照位置与%s一一对应,少一个不行,多一个也是不可以的。这样的话就需要记住位置的%代表什么,或者也可以用字典的形式传输这样就能记住key的一些信息了。

    info = "my name is %(name)s, my age is %(age)s" %{"name" : 'yanzan',"age": '19'}
    print(info)
    
    • 1
    • 2

    %s可以接受任意任何的数据类型的接受,%d只能接收整型的数字。这个%乱七八糟的,写的不好看,所以出现了format。我们只是用的字符串的输出格式,那么字符串有一个格式化输出叫做format

    format格式化输出

    # 按照位置
    'my name is {}'.format('yanzan')
    
    # 按照位置
    'my name is {}, my age is {}'.format('yanzan', 19)
    'my name is {0}{0}{0}, my age is {1}'.format('zhangsan', 19)
    
    # 打破位置的限制,按照key=value取值
    res = 'my name is {name}, my age is {age}'.format(name="yanzan", age=19)
    print(res)
    
    res2 = '我的名字是{name}, 我的年龄为:{age}'.format(age=19, name="yanzan")
    
    没有位置的限制,通常应该是使用{name}, {age}.format(name=xxx, age=xxxx)等等。
    
    name = "yanzan"
    pwd = 123
    print("my name is {name}, my password:{pwd}".format(name=name, pwd=pwd))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    format是2.6引用的,那么它的兼容性好,更好用,简洁一些,推荐使用format

    f-strings
    f的这个是从python3出来的例如下:

    name = "yanzan"
    pwd = 123
    print(f"my anme is {name}, my password:{pwd}")
    
    • 1
    • 2
    • 3

    三种格式化输出的方式,速度最快的是f格式,其次是format格式,最后是%。 目前我们推荐使用format的格式,因为保证兼容性。python2和python3都可以使用的。

    结束:

    在这里插入图片描述

  • 相关阅读:
    day01 计算机基础和环境搭建
    2024.5.29晚训参考代码
    通过商品id采集京东商品详情数据(含价格、优惠券、详情、主图等字段)
    如何启动一个Vue项目
    Unity自动导出包
    LeetCode 319 周赛
    Android ADB常用命令
    【uniapp】JavaScript基础学习-20231027
    c语言-背包问题求解
    OpenCV之pencilSketch函数
  • 原文地址:https://blog.csdn.net/qq_39591494/article/details/126417864