初窥python
python是一门动态的解释型的强类型的定义语言
在linux系统中运行需要添加
#!/usr/bin/env python
变量定义的规则:
量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
[‘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’]
注释
单行注视:# 被注释内容
多行注释:""" 被注释内容 “”"
PS:打印多行输出
其中%s是转换说明符。
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('工作:')
salary = input("薪水:")
info = '''
---------info of %s---------
name:%s
age:%s
job:%s
salary:%s
---------end---------
'''% (name,name,age,job,salary)
print(info)
测试结果如下:
---------info of jack---------
name:jack
age:20
job:it
salary:200000
---------end---------
设置字符串的格式:format精简版
python中应使用字符串方法format,使用这种方法时,每个替换字段都用花括号括起,其中可能包含名称,还可能包含有有关对相应的值进行的转换和格式设置的信息。
example1:
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('工作:')
salary = input("薪水:")
info = '''
---------info of {0}---------
name:{0}
age:{1}
job:{2}
salary:{3}
---------end---------
'''.format(name,age,job,salary)
print(info)
or
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('工作:')
salary = input("薪水:")
info = '''
---------info of {}---------
name:{}
age:{}
job:{}
salary:{}
---------end---------
'''.format(name,name,age,job,salary)
print(info)
运行结果均如下:
---------info of jan---------
name:jan
age:22
job:art
salary:30000
---------end---------
example2:
info = "{0} {1} {2} {3} {0} {1}".format('to','be','or','not')
print(info)
运行结果:
to be or not to be
example3:
from math import pi
info = "{name} is approximately {value:.2f}".format(value=pi,name="π")
print(info)
运行结果:
π is approximately 3.14
用户输入
1.input 明文输入
name = input('输入你的姓名:')
print('welcome '+name)
2.getpass模块中的getpass方法,密文输入
import getpass
pwd = getpass.getpass('请输入你的密码:')
print(pwd)
运行结果:
**ps:**getpass不能再pycharm中用,IDLE中是明文输入。
模块初始
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持。
sys模块
import sys
print(sys.argv)
运行结果:
import sys
sys.path.append('F:\\urllibxxxx\\day1')
print(sys.path)
os模块
import os
os.system('adb devices')#调用系统命令
运行结果:
List of devices attached
863178945646578 device
集合一下:
import os,sys
os.system(' '.join(sys.argv[1:]))#把用户的输入的参数当作一条命令交给os.system来执行
运行结果:
作业1:
输入用户名密码
认证成功后显示欢迎信息
输错三次后锁定
代码如下:
import sys
sys.path.append('F:\\urllibxxxx\\day1')
info_of_account = {}
#获取账号和密码
with open(r'account.txt') as f:
while True:
line = f.readline()
line = line.strip('\n')
if not line:
break
info_of_account[line] = f.readline().strip('\n')
#获取禁止登陆的账号和密码
info_of_forbid_account = []
with open('nologinaccount.txt') as f:
for line in f.readlines():
line = line.strip('\n')
info_of_forbid_account.append(line)
#print(info_of_forbid_account)
#print(info_of_account)
for i in range(3):
user_account = input('请输入账号')
#检查账号是否被锁定
if user_account in info_of_forbid_account:
print('该账号已被锁定')
continue
try:
#检查账号
info_of_account[user_account]
except KeyError:
print('没有该账号,请重新输入')
continue
user_password = input('请输入密码')
#检查密码
if info_of_account.get(user_account) == user_password:
print('欢迎登陆!')
break
else:
print('密码错误,请重新输入')
else:
print('输入三次错误,账号已锁定!已退出!')
with open('nologinaccount.txt','a') as f:
f.write(user_account+'\n')
流程图: