• Day1-用户输入及字符串格式化输入


    1.用户输入--input和getpass函数

    2.字符串的格式化

    #############################################

    一、用户输入--input()函数

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    
    #name = raw_input("what is your name?") #only on python2.x
    name = input("what is your name:") #input函数输入的是字符串格式
    print("Hello " + name)

    举例1:猜年龄

    age_of_oldboy = 56
    guess_age = int(input("The age guessed:"))  #input输入的是字符串,如果与整型进行比较,必须进行类型转换
    if guess_age == age_of_oldboy:
        print("恭喜你,猜对了")
    elif guess_age > age_of_oldboy:
        print("猜大了")
    else:
        print("猜小了")

    举例2:密码密文输入

     1 import getpass
     2 _username='tom'
     3 _password='123456'
     4 username=input("username:")
     5 #password=getpass.getpass("pasword:")   #密文输入
     6 password=input("password:")             #明文输入
     7 
     8 if _username==username and _password==password:
     9     print("Welcome user {name} login...".format(name=username))  #字符串的格式化输出
    10 else:
    11     print("Invalidusernameorpassword")

    执行结果:

    username:tom
    password:123456
    Welcome user tom login...

    二、字符串的格式化

    1 >>> print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99}) #元组的方式
    2 I'm Vamei. I'm 99 year old

    "I'm %s. I'm %d year old" 为模板。%s为第一个格式符,表示一个字符串;%d为第二个格式符,表示一个整数。('Vamei', 99)的两个元素'Vamei'和99为替换%s和%d的真实值。 
    在模板和tuple之间,有一个%号分隔,它代表了格式化操作。
    1 >>> print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})  #字典的方式
    2 I'm Vamei. I'm 99 year old

    格式符:Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。

    %s    字符串 (采用str()的显示)

    %r    字符串 (采用repr()的显示)

    %c    单个字符

    %b    二进制整数

    %d    十进制整数

    %i    十进制整数

    %o    八进制整数

    %x    十六进制整数

    %e    指数 (基底写为e)

    %E    指数 (基底写为E)

    %f    浮点数

    %F    浮点数,与上相同

    %g    指数(e)或浮点数 (根据显示长度)

    %G    指数(E)或浮点数 (根据显示长度)

    %%    字符"%"

    1 >>> print("%+10x" % 10) #16进制输出,左移10位
    2         +a
    3 >>> print("%04d" % 5)  #数字5左移4位,前面添加0
    4 0005
    5 >>> print("%6.3f" % 2.3) #浮点数2.3以小数点3位,并且占位6个字符
    6  2.300
    >>> print("%.*f" % (4, 1.2))
    1.2000

    需求:打印如下格式的字符串

    info='''
    ------------infoof$--------------
    Name:
    Age:
    Job:
    Salary:
    '''

     解决1:

     1 name=input("name:")
     2 age=input("age:")
     3 job=input("Job:")
     4 salary=input("Salary:")
     5 
     6 info='''
     7 ------------infoof%s--------------
     8 Name:%s
     9 Age:%d   #写%d而不是%s,帮助检测是不是整数
    10 Job:%s
    11 Salary:%s
    12 '''%(name,name,age,job,salary)  #这的参数必须跟%s等占位符个数、顺序一样
    13 print(info)

    解决2:

     1 name=input("name:")
     2 age=int(input("age:"))#integer默认输入是字符串,强制把字符串转换成整型
     3 print(type(age))
     4 job=input("Job:")
     5 salary=input("Salary:")
     6 
     7 info='''
     8 ------------infoof%s--------------
     9 Name:%s
    10 Age:%d
    11 Job:%s
    12 Salary:%s
    13 '''%(name,name,age,job,salary)
    14 print(info)

    解决3:

     1 name=input("name:")
     2 age=int(input("age:"))#integer
     3 job=input("job:")
     4 salary=input("salary:")
     5 
     6 info2='''
     7 ------------infoof{_name}--------------
     8 Name:{_name}
     9 Age:{_age}
    10 Job:{_job}
    11 Salary:{_salary}
    12 '''.format(_name=name,
    13 _age=age,
    14 _job=job,
    15 _salary=salary)
    16 
    17 print(info2)

    总结三种:

     1 name=input("name:")
     2 age=int(input("age:"))#integer
     3 job=input("job:")
     4 salary=input("salary:")
     5 
     6 info1='''
     7 ------------infoof%s--------------
     8 Name:%s
     9 Age:%d
    10 Job:%s
    11 Salary:%s
    12 '''%(name,name,age,job,salary)
    13 
    14 info2='''
    15 ------------infoof{_name}--------------
    16 Name:{_name}
    17 Age:{_age}
    18 Job:{_job}
    19 Salary:{_salary}
    20 '''.format(_name=name,
    21 _age=age,
    22 _job=job,
    23 _salary=salary)
    24 
    25 info3='''
    26 ------------infoof{0}--------------
    27 Name:{0}
    28 Age:{1}
    29 Job:{2}
    30 Salary:{3}
    31 '''.format(name,age,job,salary)
    32 
    33 print(info3)
  • 相关阅读:
    no,no,不要使用kill -9
    Linux中etc目录详解
    Quartz任务调度器的使用
    RMI(Remote Method invocation,远程方法访问)
    SilverLight扩展控件RadTreeView
    SiverLight和HTML交互
    SilverLight控件之ContextMenu和RadContextMenu(菜单)
    SilverLight之向后台请求数据-WebClient
    SilverLight控件样式及控件模版
    在SilverLight中代码编写可选择树节点
  • 原文地址:https://www.cnblogs.com/wolfs685/p/6718100.html
Copyright © 2020-2023  润新知