• Python自学,Day1Python基础


    学习资料来源:博客园 金角大王

     2018.7.22

    1、用户输入,并打印输出

    1 username=input("username:")
    2 password=input("password:")
    3 print(username,password)

    备注:有种大学学习C语言的即视感,先输入XXX,后执行XXX...

    2、格式化输出

    (1)、 '''+变量+'''的方式实现

     1 name=input("name:")
     2 age=input("age:")
     3 job=input("job:")
     4 salary=input("salary:")
     5 
     6 info='''
     7 ------ info of '''+name+'''-------
     8 Name:'''+name+'''
     9 Age:'''+age+'''
    10 Job:'''+job+'''
    11 Salary:'''+salary+'''
    12 '''
    13 print(info)

    优缺点:开启多个内存空间,效率底下,尽量少用

    (2)、%s的方式

    name=input("name:")
    age=input("age:")
    job=input("job:")
    salary=input("salary:")
    
    info='''
    ---------info of %s---------
    Name:%s
    Age:%s
    Job:%s
    Salary:%s
    '''%(name,name,age,job,salary)
    print(info)

    备注:

    1、%s为占位符,其中s代表string,%(name,name,age,job,salary)必须与占位符的个数相同,否则会报错

    2、%d,d代表只能是数字,不是数字类型则会报错,用于检测数据类型

    3、%f,f代表是浮点

      问题 :使用%d时,需注意,input默认的时string,即使输入的是数字

     1 age=input("age:") 2 print(type(age)) 

      问题结果:

     1 age:30 2 <class 'str'> 

      解决:强至转换数据类型

    1 age=input("age:")
    2 age=int(age)#强制转换成数据类型,str->int
    3 print(type(age))

      结果:

     1 age:30 2 <class 'int'> 

    方法2的可调整为

     1 name=input("name:")
     2 age=input("age:")
     3 age=int(age)#强制转换成数据类型,str->int
     4 job=input("job:")
     5 salary=input("salary:")
     6 
     7 info='''
     8 ---------info of %s---------
     9 Name:%s
    10 Age:%d
    11 Job:%s
    12 Salary:%s
    13 '''%(name,name,age,job,salary)
    14 print(info)

    备注:age只能输入整数,输入小数则会出现无法执行数据类型转换

    (3)、{变量}的方式实现

     1 name=input("name:")
     2 age=input("age:")
     3 job=input("job:")
     4 salary=input("salary:")
     5 
     6 info='''
     7 ---------info of {_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 print(info)

    备注:_name类似函数的定义变量的赶脚...

    另一种写法

     1 # Author:Shang
     2 # 用户输入,格式化输出
     3 name=input("name:")
     4 age=input("age:")
     5 job=input("job:")
     6 salary=input("salary:")
     7 
     8 info='''
     9 ---------info of {0}---------
    10 Name:{0}
    11 Age:{1}
    12 Job:{2}
    13 Salary:{3}
    14 '''.format(name,age,job,salary)
    15 print(info)

    备注:类似数组的方式,缺点是如果数据较多,则该方法不合适

    3、密码加密显示

    1 import getpass #引用标准库getpass
    2 
    3 username=input("username:")
    4 password=getpass.getpass("password:")
    5 
    6 print(username,password)

    备注:getpass在Pycharm中不好用、不好用...(什么鬼?),但是在shell中可用(为什么我在shell中也不好用呢?甚至奇怪~)

    4、if elif else

    _username="shang"
    _password="123456"
    
    username=input("username:")
    password=input("password:")
    
    if username !=_username:
        print("用户名不正确")
    elif password != _password:
        print("密码有误")
    else:
        print("欢迎回来 {name}".format(name=username))

    需注意,书写是,需要有严格的格式要求

    5、Game:使用if-else猜年龄

     1 age_of_ace=30
     2 
     3 guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
     4 
     5 if guess_age > age_of_ace:
     6     print("think younger")
     7 elif guess_age < age_of_ace:
     8     print("think older")
     9 else:
    10     print("yes,you get it!!!")

    备注:作比较时,需要需讲比较双方的数据类型转化成一致

    6、while循环

    要求:错误循环三次后,结束游戏;猜对之后,直接结束

     1 age_of_ace=30
     2 count=0
     3 
     4 while count<3:
     5     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
     6     if guess_age > age_of_ace:
     7         print("think younger")
     8     elif guess_age < age_of_ace:
     9         print("think older")
    10     else:
    11         print("yes,you get it!!!")
    12         break
    13     count += 1
    14 else:
    15     print("oh,no! the game is over~")

    备注:while-else的用法,这个略屌,跳出while之后,进行else的流程

    7、while的应用

    要求:在错误3次后,确认是否需要继续,如果继续,则继续进行循环,否则停止游戏

     1 age_of_ace=30
     2 count=0
     3 
     4 while count<3:
     5     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
     6     if guess_age > age_of_ace:
     7         print("think younger")
     8     elif guess_age < age_of_ace:
     9         print("think older")
    10     else:
    11         print("yes,you get it!!!")
    12         break
    13     count += 1
    14     if count==3:
    15         result=input("do you want to try again? Y/N:")
    16         if result=="Y":
    17             count=0
    18 else: #while跳出后,进行else
    19     print("the game is over")

    在最后判断是否继续,当用户选择Y时,则清空循环次数,继续进行循环;其他选择时,则结束游戏

    8、for循环

    语法:for i in range(3)--i从0开始,依次递增,直至i>=3为止

     1 age_of_ace=30
     2 
     3 for count in range(3):
     4     guess_age=int(input("guess age:")) #比较时,不能使用str进行比较
     5     if guess_age > age_of_ace:
     6         print("think younger")
     7     elif guess_age < age_of_ace:
     8         print("think older")
     9     else:
    10         print("yes,you get it!!!")
    11         break
    12 else:
    13     print("oh,no! the game is over~")

    备注:当不满足条件跳出for循环后,则执行最后的else;但是当break跳出后,则不执行最后一个else

    9、for的间断循环执行

      每隔1个数执行一次

    1 for i in range(0,10,2):
    2     print("loop",i)
    #执行结果
    loop 0
    loop 2
    loop 4
    loop 6
    loop 8

    备注:其中(0,10,2),0代表开始的数值,10代表循环的此处,2代表步幅间距

    10、continue 跳出本次循环继续进行下次循环

    break 跳出整个循环

    1 for i in range(0,10):
    2     if i<5:
    3         print("loop",i)
    4     else:
    5         continue
    6     print("continue的应用")
     1 #结果
     2 loop 0
     3 continue的应用
     4 loop 1
     5 continue的应用
     6 loop 2
     7 continue的应用
     8 loop 3
     9 continue的应用
    10 loop 4
    11 continue的应用

    备注:只打印5次,后续的打印,被continue给跳过

  • 相关阅读:
    机器学习笔记
    使用pelican创建静态博客
    farbox editor是个好东西
    MamBa项目的插件编写-TikiTorch生成器
    通过rundll32运行C#DLL转储内存
    通过调用Windows本地RPC服务器bypass UAC
    浅谈python反序列化漏洞
    [转载]SQL Server提权系列
    certutil在传输payload中的新奇技巧
    AVIator -- Bypass AV tool
  • 原文地址:https://www.cnblogs.com/ace722/p/9348933.html
Copyright © 2020-2023  润新知