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方法,即:

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

6 字符串格式化输出

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

 #!/usr/bin/env python
name = input("name:")
age = input("age:")
job = input("job:")
salary = input("salary:") info = '''
========user info %s=========
name:%s
age:%d
job:%s
salary:%d
''' % (name, name, int(age), job, int(salary))
print(info) info2 = '''
========user info {0}=========
name:{0}
age:{1}
job:{2}
salary:{3}
'''.format(name, age, job, salary)
print(info2)
info3 = '''
========user info {_name}=========
name:{_name}
age:{_age}
job:{_job}
salary:{_salary}
'''.format(_name=name, _age=age, _job=job, _salary=salary)
print(info3)

7 表达式 if...else

  场景一:用户登录验证

 # 提示输入用户名和密码

 # 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX! #!/usr/bin/env python
# -*- coding: encoding -*- import getpass name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:') if name == "alex" and pwd == "cmd":
print("欢迎,alex!")
else:
print("用户名和密码错误")

  场景二:猜年龄游戏

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

 #!/usr/bin/env python
# -*- coding: utf-8 -*- my_age = 28 user_input = int(input("input your guess num:")) if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")

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

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

8 表达式for...loop

  简单循环10次 

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

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

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

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

 for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
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  练习  实现登录并且失败三次锁定账号 

 #!/usr/bin/env python3

 userFile = open("user.txt")  # 保存用户名和密码
allUser = userFile.readlines()
userFile.close() lockFile = open("lockFile.txt") # 保存被锁定的用户
lockUser = lockFile.readlines()
lockFile.close() info = "============登录系统==============="
print(info) loginCount = 0
userName = "" while loginCount < 3:
userName = input("请输入用户名:")
if userName + "\n" in lockUser:
print(userName, "被锁定")
break
password = input("请输入密码:") for line in allUser:
lineUser = line.split(" ")[0]
linePass = line.split(" ")[1].replace("\n", "")
if lineUser == userName and linePass == password:
print("登录成功")
loginCount = 4
break
else:
continue
else:
loginCount = loginCount + 1 if loginCount == 3:
print(userName, "超过三次被锁定!")
if userName + "\n" not in lockUser:
lockFile = open("lockFile.txt", "a")
lockFile.write(userName + "\n")
lockFile.flush()
lockFile.close() if loginCount != 4 and loginCount != 3:
print("请再试一次")

pyhon3.0 day01 变量、输入、输出、循环的更多相关文章

  1. Python基础-week01 Python安装/变量/输入/及循环语句使用

      一.Python介绍 (1).目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,You ...

  2. python 变量,输入,输出

    目录 2.0 注释 2.1 变量 2.2 变量名命名规范 2.3 常量 2.4 输入 input 2.5 输出 print 2.6 关于开发工具 2.0 注释 python的注释方法 "&q ...

  3. 【PY从0到1】第六节 用户输入while循环

    # 6 第六节 用户输入while循环 # 1> 重要的函数--input() # 我们先讲解一下input():当Python碰到input()后会执行括号内的语句. # 随后等待用户的输入. ...

  4. C语言基础学习基本数据类型-变量的输出与输入

    变量的输出 变量如何输入输出呢?实际上,在这之前你已经使用过输出语句(printf语句)了,我们可以使用printf来执行输出. printf语句的使用方法如下: printf(格式控制字符串, 数据 ...

  5. C++——流类库和输入/输出

    前言 数据是怎么写道磁盘的? 代码里面我们一个读写调用似乎就能将数据从磁盘读写.仿佛代码是直接和磁盘打交道.以我们最常见的笔记本.或台式机的磁盘SATA盘为例,其受南桥上ATA控制器支配,这里面传输的 ...

  6. C语言笔记 09_共用体&typedef&输入|输出

    共用体 共用体允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置的有效方式. 定义共用体 为了定义共用体, ...

  7. oracle存储过程、声明变量、for循环|转|

    oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ...

  8. [转]C语言文件输入/输出ACM改进版(freopen函数)

    C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论   文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...

  9. oracle存储过程、声明变量、for循环(转)

    oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ...

随机推荐

  1. servlet的生命周期详解

    一.servlet生命周期原理解析 1.Servlet生命周期分为三个阶段: (1)初始化阶段  调用init()方法 (2)响应客户请求阶段 调用service()方法 (3)终止阶段 调用dest ...

  2. 《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter

    七.强大的meterpreter  7.1再探metasploit的攻击载荷模块     7.1.1典型的攻击载荷模块     metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞 ...

  3. 关于easyui表格右侧多出来的那一列。

    关于easyui表格右侧多出来的那一列,如下图,是给滚动条预留的位置,easyui表格默认就有的. 如果想要不显示:打开jQuery.easyui.min.js文件,找到wrap.width();所在 ...

  4. Springboot时间参数格式化

    @Configuration public class DateTimeFormatConfiguration extends WebMvcConfigurerAdapter { @Value(val ...

  5. cocos2d-x开发:服务端基础库封装

    元旦前面几天都在忙着面试,随后的几天也就一直在做服务端基础库开发方面的工作.对于服务端开发,是很久之前的事情了.那时候我还在大学读书,一直都是在倒腾服务端开发方面的东西,毕业后参加公司工作就是一直从事 ...

  6. Node 192.168.248.12:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

    [root@node00 src]# ./redis-trib.rb add-node --slave --master-id4f6424e47a2275d2b7696bfbf8588e8c4c3a5 ...

  7. xcode10不兼容问题解决方法,framework编译脚本

    XCode10报错:Build/Intermediates.noindex/XCBuildData/build.db": disk I/O error 更改-scheme 为-target ...

  8. oracle入门(二)

    ### 一,视图 ```1. 什么是视图    视图是一张虚表, 可以把视图看成表使用(增删改查),视图中没有数据,所有的数据都在基本表中(tables)    封装了一个复杂的DQL    操作视图 ...

  9. JavaScript入门学习(1)

    <html> <script type ="text/javascript"> var i,j; for (i=1;i<10;i++){ for (j ...

  10. C++中一个0xC0000005访问冲突问题

    在冯.诺依曼结构CPU(如i386,ARM A8,A9)的保护模式或者哈佛结构(如8051, ARM M0,.. M3)的CPU下,C++编译器将放置常量的内存设置为只读模式或者放入只读内存中,如果出 ...