zoukankan      html  css  js  c++  java
  • pyhon3.0 day01 变量、输入、输出、循环

    pyhon3.0 基础01

    1 python解释器

      Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

    2 HelloWorld程序

      如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器

    #!/usr/bin/env python
    print("hello world")

    3 变量

      如果在python3中不用指定编码,在python2中需要指定

    #_*_coding:utf-8_*_
     
    name = "haha"

      上述代码声明了一个变量,变量名为name 变量值为“”haha“”

      变量的定义规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

    4 注释

      当行注视:# 被注释内容

      多行注释:""" 被注释内容 """

    5 用户输入

    #!/usr/bin/env python
    #_*_coding:utf-8_*_
      
    #name = raw_input("What is your name?") #only on python 2.x
    name = input("What is your name?")
    print("Hello " + name )

      输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3   
     4 import getpass
     5   
     6 # 将用户输入的内容赋值给 name 变量
     7 pwd = getpass.getpass("请输入密码:")
     8   
     9 # 打印输入的内容
    10 print(pwd)

    6 字符串格式化输出

      三种字符串格式化输出方式:

     1 #!/usr/bin/env python
     2 name = input("name:")
     3 age = input("age:")
     4 job = input("job:")
     5 salary = input("salary:")
     6 
     7 info = '''
     8     ========user info %s=========
     9     name:%s
    10     age:%d
    11     job:%s
    12     salary:%d
    13 ''' % (name, name, int(age), job, int(salary))
    14 print(info)
    15 
    16 info2 = '''
    17     ========user info {0}=========
    18     name:{0}
    19     age:{1}
    20     job:{2}
    21     salary:{3}
    22 '''.format(name, age, job, salary)
    23 print(info2)
    24 info3 = '''
    25     ========user info {_name}=========
    26     name:{_name}
    27     age:{_age}
    28     job:{_job}
    29     salary:{_salary}
    30 '''.format(_name=name, _age=age, _job=job, _salary=salary)
    31 print(info3)

    7 表达式 if...else

      场景一:用户登录验证

     1 # 提示输入用户名和密码
     2   
     3 # 验证用户名和密码
     4 #     如果错误,则输出用户名或密码错误
     5 #     如果成功,则输出 欢迎,XXX!
     6  
     7  
     8 #!/usr/bin/env python
     9 # -*- coding: encoding -*-
    10   
    11 import getpass
    12   
    13   
    14 name = raw_input('请输入用户名:')
    15 pwd = getpass.getpass('请输入密码:')
    16   
    17 if name == "alex" and pwd == "cmd":
    18     print("欢迎,alex!")
    19 else:
    20     print("用户名和密码错误")

      场景二:猜年龄游戏

      在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3  
     4  
     5 my_age = 28
     6  
     7 user_input = int(input("input your guess num:"))
     8  
     9 if user_input == my_age:
    10     print("Congratulations, you got it !")
    11 elif user_input < my_age:
    12     print("Oops,think bigger!")
    13 else:
    14     print("think smaller!")

      外层变量,可以被内层代码使用

      内层变量,不应被外层代码使用

    8 表达式for...loop

      简单循环10次 

    #_*_coding:utf-8_*_
    __author__ = 'Alex Li'
     
     
    for i in range(10):
        print("loop:", i )
      输出
     1 loop: 0
     2 loop: 1
     3 loop: 2
     4 loop: 3
     5 loop: 4
     6 loop: 5
     7 loop: 6
     8 loop: 7
     9 loop: 8
    10 loop: 9

       需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

    for i in range(10):
        if i<5:
            continue #不往下走了,直接进入下一次loop
        print("loop:", i )

      需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

    1 for i in range(10):
    2     if i>5:
    3         break #不往下走了,直接跳出整个loop
    4     print("loop:", i )

    9 while...loop

      海枯石烂代码

    count = 0
    while True:
        print("你是风儿我是沙,缠缠绵绵到天涯...",count)
        count +=1

      其实除了时间,没有什么是永恒的,死loop还是少写为好

      上面的代码循环100次就退出吧

    count = 0
    while True:
        print("你是风儿我是沙,缠缠绵绵到天涯...",count)
        count +=1
        if count == 100:
            print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
            break

      回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
     
     
    my_age = 28
     
    count = 0
    while count < 3:
        user_input = int(input("input your guess num:"))
     
        if user_input == my_age:
            print("Congratulations, you got it !")
            break
        elif user_input < my_age:
            print("Oops,think bigger!")
        else:
            print("think smaller!")
        count += 1 #每次loop 计数器+1
    else:
        print("猜这么多次都不对,你个笨蛋.")

    10  练习  实现登录并且失败三次锁定账号 

     1 #!/usr/bin/env python3
     2 
     3 
     4 userFile = open("user.txt")  # 保存用户名和密码
     5 allUser = userFile.readlines()
     6 userFile.close()
     7 
     8 lockFile = open("lockFile.txt")  # 保存被锁定的用户
     9 lockUser = lockFile.readlines()
    10 lockFile.close()
    11 
    12 info = "============登录系统==============="
    13 print(info)
    14 
    15 loginCount = 0
    16 userName = ""
    17 
    18 while loginCount < 3:
    19     userName = input("请输入用户名:")
    20     if userName + "
    " in lockUser:
    21         print(userName, "被锁定")
    22         break
    23     password = input("请输入密码:")
    24 
    25     for line in allUser:
    26         lineUser = line.split(" ")[0]
    27         linePass = line.split(" ")[1].replace("
    ", "")
    28         if lineUser == userName and linePass == password:
    29             print("登录成功")
    30             loginCount = 4
    31             break
    32         else:
    33             continue
    34     else:
    35         loginCount = loginCount + 1
    36 
    37     if loginCount == 3:
    38         print(userName, "超过三次被锁定!")
    39         if userName + "
    " not in lockUser:
    40             lockFile = open("lockFile.txt", "a")
    41             lockFile.write(userName + "
    ")
    42             lockFile.flush()
    43             lockFile.close()
    44 
    45     if loginCount != 4 and loginCount != 3:
    46         print("请再试一次")
  • 相关阅读:
    通过pwndbg看看c中局部变量是如何在stack上放置的 此外 printf %n的作用终于弄明白了
    pip 安装过慢 使用清华源 加速
    mac 10.15.6 安装 IDA
    使用机器学习检测命令行混淆
    安全技能树简版
    栈溢出 hack 入门例子 hello world
    201116西瓜书机器学习系列---8、集成学习
    legend2---某些js代码电脑浏览器支持,手机浏览器不支持的调试
    legend2---做题页的每个题目对应的答案重点标颜色
    legend2---jquery重新渲染某元素
  • 原文地址:https://www.cnblogs.com/zhaobingqing/p/8125055.html
Copyright © 2011-2022 走看看