一、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. Solaris服务管理

    远程登录协议 telnet \ssh 等.当然我们可以查看谁登录过我的系统,以及可以利用ftp记录日志. 一.SMF: 服务管理工具 优点:自动恢复意外终止的服务,支持服务的依赖关系,一个服务可以有多 ...

  2. vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp

    VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp, ffmpeg版本是3.0.2. 1. 下载x264源文件并编译 源码地址是http:// ...

  3. Java EJB JBoss

    JBoss:JBoss是web服务器的一种,主要做EJB容器,和tomcat集成就可以jsp,servlet,ejb通吃了JBoss有两种版本,一种是独立的,一种是和tomcat集成的,当然都是免费的 ...

  4. PHP中多维数组查找某个值是否存在的方法

    in_array — 检查数组中是否存在某个值,只是这个方法不能检查多维数组. 所以可以编写类似下面的递归方法来检查多维数组. function deep_in_array($value, $arra ...

  5. Qt Creator设置黑色主题背景

    黑色的主题看起来比較炫酷一点.也有人说黑色主题用起来对眼睛好.只是个人感觉然并卵,依据自己的习惯爱好设置就好. 假设想保护眼睛,还是将屏幕调到合适的亮度,不要太暗.自己眼睛认为舒服最好.也能够通过&q ...

  6. 系统安全-Firewall

    Netfilter/iptables是与最新的2.6.x版本Linux内核集成的ip信息包过滤系统.如果Linux系统连接到因特网或LAN.服务器或连接LAN和因特网的代理服务器,则该系统有理由在Li ...

  7. iOS移动开发周报-第17期

    lhq iOS移动开发周报-第17期 前言 欢迎国内的iOS同行或技术作者向我提交周报线索,线索可以是新闻.教程.开发工具或开源项目,将相关文章的简介和链接在微博上发布并 @唐巧_boy 即可. [摘 ...

  8. linux 查找最后几条数据

    tail(选项)(参数) -n<N>或——line=<N>:输出文件的尾部N(N位数字)行内容. 例如:grep 查询 2018-02-*/*.log |tail -n 5查询 ...

  9. 计算机鼻祖-Donald Knuth(高纳德) 的传奇

    李开复说,练内功,不要仅仅花功夫学习各种流行的编程语言和工具,以及一些公司招聘广告上要求的科目.要把数据结构.算法.数据库.操作系统原理.计算机体系结构.计算机网络,离散数学等基础课程学好.最好还是试 ...

  10. EasyPusher实现将asterisk直播流以RTSP转发实现通话直播与录像

    本文转自博客:http://blog.csdn.net/jinlong0603/article/details/56047145 EasyPusher RTP直播推送介绍 EasyPusher是一个推 ...