一、python入门

1、python的标准格式

创建python文件以.py结尾

如:vi hello.py

#!/usr/bin/env python

#-*- coding:utf-8 -*-       #python3.5以上版本默认可以使用中文。

print "Hello Word"

执行:

python hello.py  即可

或者增加执行权限:chmod 755 hello.py

./hello.py

2、变量

name = "liudong"

name2 = name

然后把name = "liuyansheng"

#name2 不变,原因是一旦修改,重新创建。name2会重新开辟一块新内存空间。

集合就不同了:

name = ['liu','yan','sheng',]

name2 = name

#name2会变,原因是集合和字符串不同他的各个元素不是连续的,name增加一个元素不会开辟一块新的空间,name2就会跟着改变。

3、输入

name = raw_input("请输入用户名:")

#打印输出的内容

print name

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

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#liudong

import getpass

#将用户输入的内容赋值给name变量

pwd = getpass.getpass("请输入密码:")

#打印输入的内容

print name

4、流程控制

(1)用户身份认证:

语法:if...else      if...elif...elif...else

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#liudong

import getpass

name = raaw_input("请输入用户名:")

pwd = raw_input("请输入密码:")

if name =="liudong" and pwd =="":

  print "登陆成功"

else:

  print "登陆失败"

(2)猜年龄:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#liudong

liudong = 24

guess_age = int(input("guess age:"))

if guess_age == liudong:

  print ("yes")

elif guess_age > liudong:

  print ("smaller....")

else:

  print ("bigger....")

循环猜3次,猜对退出:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#liudong

liudong = 24

count = 0

while True:

  if count == 3:  

    break

  guess_age = int(input("guess age:"))

  if guess_age == liudong:

    print ("yes")

    break

  elif guess_age > liudong:

    print ("smaller....")

  else:

    print ("bigger....")

   count +=1

最多循环猜3次,猜对自动退出,猜错提示“fuck off”:

#!/usr/bin/env python

#-*- coding: utf-8 -*-

#liudong

liudong = 24

count = 0

while count < 3

  guess_age = int(input("guess age:"))

  if guess_age == liudong:

    print ("yes")

    break

  elif guess_age > liudong:

    print ("smaller....")

  else:

    print ("bigger....")

   count +=1

else:

  print ("fuck off")

注:continue 是跳出当前循环,break是跳出整个循环。

《用户登陆》-代码

https://www.processon.com/diagraming/57985ffde4b0bc50fa52a09b 用户登陆流程图

注:新建user_info.txt用户文件、和user_lock_info.txt文件。

完整代码如下:

#!/usr/bin/env/python
import sys,os,getpass #os.system('clear') #清屏
i=0
while i < 3: #只要用户异常登录不超过3次,可以不断循环
name = input('\33[32m请输入用户名:\33[37m') lock_file = open('user_lock_info.txt','a+')
#当用户输入用户名后,打开锁定文件 检查此用户是否已经lock掉了
lock_list = lock_file.readlines() #按行的形式打开 for lock_line in lock_list: #循环lock文件
lock_line =lock_line.strip('\n') #去掉换行符
if name == lock_line: #如果lock,直接退出
sys.exit('用户 %s 已经被锁定,退出!' % name)
user_file = open('user_info.txt') #打开账号文件
user_list = user_file.readlines()
for user_line in user_list: #对账号文件进行循环匹配
(user,password) = user_line.strip('\n').split() #分别获取账号、密码
if name == user: #如果用户名正常匹配
a = 0
while a < 3: #只要用户密码异常输入不超过3次就不断循环
passwd = input('\33[32m请输入密码:\33[37m') #输入密码,也可以做隐藏密码
if passwd == password: #密码正确匹配,提示欢迎登录
print('欢迎登陆管理平台,用户 %s !' % name)
sys.exit(0) #正常退出,调用系统退出命令
else :
if a != 2: #a=2时,是最后一次机会,不会提示0次机会了
print('用户 %s 密码错误,请重新输入,还有 %d 次机会' % (name,2 - a))
a += 1 #密码输错后,循环增加1
else:
lock_file.write(name + '\n') #密码输错三次后,将该用户写入lock文件
sys.exit('用户 %s 达到最大登陆次数将被锁定退出' % name)
else:
if i != 2: #i=2时,是最后一次机会,不再提示0次机会了
print ('用户 %s 不存在,请重新输入,还有 %d 次机会' % (name,2 -i))
i += 1 #当用户输错时,循环增加1
else:
print('用户 %s 不存在,退出!') #用户输入3次错误后,异常退出
lock_file.close() #关闭lock文件
user_file.close() #关闭账号、密码文件

《用户登陆》-代码

https://www.processon.com/diagraming/57986e66e4b0636f3aa4d175  三级菜单流程图

完整代码如下:

#!/usr/bin/env python
#-*- encoding:utf8 -*-
chinamap = {
"山东省":{
"济南":["市中区1","历下区2","天桥区","槐荫区","历城区","长清区","章丘市","平阴县","济阳县","商河县","其他"],
"青岛":["市南区","市北区","城阳区","四方区","李沧区","黄岛区","崂山区","胶南市","胶州市","平度市","莱西市","即墨市","其他"]
},
"北京市":{
"北京":["东城区","西城区","崇文区","宣武区","朝阳区","海淀区","丰台区","石景山区","房山区","通州区","顺义区","昌平区","大兴区","怀柔区","平谷区","门头沟区","密云县","延庆县","其他"],
},
"广东省":{
"广州":["越秀区","荔湾区","海珠区","天河区","白云区","黄埔区","番禺区","花都区","南沙区","萝岗区","增城市","从化市","其他"],
"深圳":["福田区","罗湖区","南山区","宝安区","龙岗区","盐田区","其他"]
}
}
flag = True
try_sheng = 0
try_city = 0
try_area = 0
while flag:
if try_sheng < 3 :
print ('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
for sheng in chinamap.keys(): #获取变量的键
print (sheng)
print ('============================================================')
shengfen_input = input('请输入要查询的省份:')
city_flag = True
while city_flag:
if try_city < 3 :
if shengfen_input.strip() in chinamap:
#执行下面的操作
print ('下面请输入城市信息')
print ('============================================================')
for city in chinamap[shengfen_input].keys():
print (city)
print ('============================================================')
city_input = input('请输入要查询的城市名称:')
area_flag = True
while area_flag:
if try_area < 3 :
if city_input.strip() in chinamap[shengfen_input]:
print ('下面请输入城区信息')
print ('============================================================')
for city_area in chinamap[shengfen_input][city_input]:
print (city_area)
print ('============================================================')
area_input = input('请输入要查询的区域信息:')
if area_input.strip() in chinamap[shengfen_input][city_input]:
print ('当前查询的是:',shengfen_input,city_input,area_input)
flag = False
city_flag = False
break
else:
print ('没有要查询的区域,请重新输入')
try_area += 1
else:
print ("没有要查询的城市,请重新输入")
try_city +=1
area_flag = False else:
print ('三次操作错误,退出程序')
flag = False
city_flag = False
area_flag = False
else:
print ("没有要查询的省份,请重新输入")
try_sheng += 1
city_flag = False
else:
print ('三次操作错误,退出程序')
flag = False
city_flag = False else :
print ('三次操作错误,退出程序')
flag = False

py-day1简单使用方法及语法使用详解的更多相关文章

  1. Atitit.jdk java8的语法特性详解 attilax 总结

    Atitit.jdk java8的语法特性详解 attilax 总结 1.1. 类型推断这个特别有趣的.鲜为人知的特性1 2. Lambda1 2.1. 内部迭代意味着改由Java类库来进行迭代,而不 ...

  2. 一个简单的C语言程序(详解)

    C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h> int main(void) //一个简单的 C程序 { int num; //定义一个名为 ...

  3. EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

    前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...

  4. 为简单而努力:Android封装类详解

    一.简单说明 1, IntentService IntentService继承自Service,并在其内部创建了工作线程,用来处理耗时操作,其中onHandleIntent方法就是在子线程执行的,我们 ...

  5. 加密方法与HTTPS 原理详解

    一:加密方法: 1,对称加密 AES,3DES,DES等,适合做大量数据或数据文件的加解密. 2,非对称加密 如RSA,Rabin.公钥加密,私钥解密.对大数据量进行加解密时性能较低. 二:https ...

  6. JSON 语法规则详解

    JSON 的语法规则十分简单,无论用何种方法总结都只有数条而已,它参考了 C 语言家族的一些习惯,学习起来并不会感到陌生. 回顾JSON 的五点语法 1)- 数组(Array)用方括号("[ ...

  7. vue 的模板编译—ast(抽象语法树) 详解与实现

    首先AST是什么? 在计算机科学中,抽象语法树(abstract syntax tree或者缩写为AST),或者语法树(syntax tree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言 ...

  8. Java 语法糖详解

    语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法. 这种语法对语言的功能并没有影响,但是 ...

  9. Java使用wait() notify()方法操作共享资源详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 Java多个线程共享资源: 1)wait().notify()和notifyAll()方法是本地方法,并且为final方 ...

随机推荐

  1. spring security开发步骤

    1.web.xml中加载spring ,spring security 2.spring security配置文件中配置好.... 3.自己写一个myFilter代替原有的FilterSecurity ...

  2. CloudStack管理VMware遇到的问题

    话说前段安装了CloudStack并使用它来管理XenServer,这回要用它来管理VMware.虽说之前遇到了大大小小的问题都攻克了,但在VMware这一块还是遇到了一些麻烦. 在创建资源域.加入集 ...

  3. matplotlib简易新手教程及动画

    做数据分析,首先是要熟悉和理解数据.所以掌握一个趁手的可视化工具是很重要的,否则对数据连个主要的感性认识都没有,怎样进行下一步的design 点击打开链接 还有一个非常棒的资料  Matplotlib ...

  4. 整合Hibernate3.x

    As of Spring 3.0, Spring requires Hibernate 3.2 or later. Hibernate 3和Hibernate 4有一些区别,所以对于spring而已, ...

  5. windows 平台 ffmeg h264 硬编码

    本文讲述windows 平台下ffmpeg如何利用intel media SDK 进行 h264硬编码(测试版本为3.2.2). ffmeg硬编编码的流程与软件编码流程相同,唯一不同的地方在初始化en ...

  6. CentOs中mysql的安装与配置(转)

    在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...

  7. Ubuntu16.04 下docker部署web项目

    概念性的请戳 第一步:更新apt-get update 第二步:安装环境 apt-get install \ apt-transport-https \ ca-certificates \ curl ...

  8. mongodb查看连接数、同步时间、oplog及修改表名的操作

    1) mongodb查看连接数: db.serverStatus().connections; 2) mongodb查看同步时间: db.printSlaveReplicationInfo();  % ...

  9. Arrays.sort(a) 自定义排序

     Arrays.sort(a) 自定义排序,(需实现接口:Comparable) package com.hd; import java.util.Arrays; class Person imple ...

  10. android arcmenu

    http://www.kankanews.com/ICkengine/archives/129193.shtml