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("请再试一次")
原文地址:https://www.cnblogs.com/zhaobingqing/p/8125055.html