Pyhton编程(二)之变量、用户输入及条件语句
1、 变量
Python中的变量概念很好理解,变量其实就是某个数值的“名字”。
变量定义的规则:
(1) 只能由数字、字母、下划线组成(不能以数字开头)
(2) 不能使用关键字作为变量名
['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'] ,这些关键字作为了解,不需要死记,当使用Python解释器编写代码的过程中,如果误用关键字作为变量名,解释器会自动标红该变量名以做提示。
(3) 最好不要使用Pyhton的内置函数作为变量名
在Python中,有很多内置函数,它们的用法和功能已经写好,用的时候直接调用就可以了,如果将变量与内置函数定义成同一个名字,难免会出现一些意想不到的错误。看下面这个例子:
print(sum([1,2,3])) //调用内置函数sum,求和
运行结果:
6
如果将sum作为变量名并赋予了一个其它的值,在用sum内置函数进行求和操作的话:
sum = 123 //将sum作为变量名,并给它赋值为123
print(sum([11,22])) //调用内置函数sum,求和
运行结果:
程序报错:TypeError: 'int' object is not callable
再次执行此程序会发现程序报错了:“TypeError: 'int' object is not callable”,这是因为将sum作为变量名并赋值了之后,下面的程序在调用sum的时候会先找到该变量而不是先去找Python的内置函数sum(),所以最好不要用内置函数作为变量名使用。
在上面这个代码中,类似于sum = 123 形式的 变量名 = 值这样的操作称为赋值,也可以理解为:将某个值绑定到了某个变量上,变量在被赋值后,就可以在表达式中使用该变量,变量可以理解为一个昵称,来代指在内存中某个地址中的内容
2、 用户输入
程序是为了满足人们的需求来供人使用的,当一个用户在调用程序的时候,赋值给某个变量的值是不确定的,为了将无法预测的值赋值给指定的变量以便后面的程序可以调用该变量,就要用到input()函数。
input():永远等待,直到用户输入了一个值,该程序才会继续执行,并将输入的值赋值给某一个变量。
以大家最熟悉的用户登陆过程为例:提示用户输入用户名和密码,如果输入正确输出“Welcome”,输入错误输出“Failed”,代码如下:
如上述的代码实例,通过input()函数获取到了用户的实时输入。
但还存在一个小问题:通过上面的代码,用户在输入密码的时候是明文的,如果想设置密码为密文,就需要getpass模块。模块的概念稍后会讲到。
username = "root" //定义正确的用户名和密码
password = "root"
"""调用input()函数提示用户输入,输入的值赋值给Personname和Personpasswd,如果没有输入,程序将停滞,不会继续向下执行"""
Personname = input("Please enter your username:")
Personpasswd = input("Please enter your password:")
"""判断用户输入的用户名和密码是否与正确的用户名和密码相同"""
if Personname == username and Personpasswd == password:
print("Welcome")
else:
print("Failed")
3、 模块导入
Python通过导入模块来扩展自己的功能。导入模块通过import关键字,主要有以下4种方式:
import os //导入os模块
from os import mkdir //导入os模块中的mkdir函数
from os import mkdir,rmdir //导入os模块中的mkdir,rmdir函数,用逗号分隔
from os import * //导入os模块中的一切
还有一种重命名的方法,如果需要导入的两个模块中都有mkdir方法,可以使用import+模块名+as+自定义模块名的方式来进行区分。
from moudle1 import mkdir as test1 //将moudle1模块中的mkdir函数重命名为test1
from moudle2 import mkdir as test2 //将moudle2模块中的mkdir函数重命名为test2
通过test1.xxx和test2.xxx的方式调用。
4、 条件语句
- if 语句
if 条件语句用来进行判断,如下所示为if条件语句的基本结构:
if条件:
内部代码块
通过 if+表达式的方式来对所写的表达式进行真假判断,如果判定为真,执行后面的代码块。如果为假,该代码块不会被执行。
- if..else语句
当进行if条件判断时,如果判定为真和判定为假都有不同的输出,就需要使用if..else语句。
if 条件:
内部代码块1
else:
内部代码块2
如上的代码结构所示,通过if ..else语句如果判定的条件为真,就执行内部代码块1,否则会执行内部代码块2
- if..elif..else语句
如果对于多种条件的判定,都会有不同的返回结果,使用if..eles语句很显然是不行的,它仅仅能返回真或假两种结果,所以为了适用于多种判定,就需要使用if..elif..else语句,如下所示:
if 条件:
内部代码块1
elif 条件:
内部代码块2
……
else:
内部代码块3
可以在中间插入无数多个elif条件来对多种判定条件进行判断,并得到相应的返回结果
- if条件语句的嵌套
if条件1:
if条件2:
内部代码块1
else:
内部代码块2
else:
内部代码块3
在写if嵌套语句的时候一定要注意代码的缩进问题,所以初步学习的时候不建议加多个嵌套,否则很容易出现逻辑混乱甚至导致程序运行出错。
下面通过一个简单的小例子来演示下if语句的用法
应用场景:
(1) 输入用户名,判断该用户名是否正确,如果正确,则进入该用户,否则输出“Username does not exist”
(2) 如果用户名正确,提示用户输入密码,如果密码输入正确,输出“welcome”,否则输出“password input error”
username = "czp"
password = ""
login_user = input("Please enter your username:")
if login_user == username:
login_passwd = input("Please enter your password:")
if login_passwd == password:
print("welcome")
else:
print("password input error")
else:
print("Username does not exist")
5、 循环语句
上面写到的用户登陆例子中,程序执行一次就会终止了,在很多时候,我们登陆的时候,难免会输错密码或忘记密码,输错一次就不允许再次输入,就很不符合实际的应用场景,如果想让其重复执行,就需要用到while循环语句。
- 基本while循环
while 条件:
# 循环体
# 如果条件为真,那么循环体则执行
# 如果条件为假,那么循环体不执行
当有一个需求是打印0-10的时候,可以用这样的方式:
print(0)
print(1)
………
print(10)
如果用循环的话,就更方便了
i=0
while i < 11:
print(i)
i+=1
- break
while True:
print ""
break //当输入break时,就退出所有循环
print ""
- continue
while True:
print ""
continue //当输入continue,退出当前循环,继续下一次的循环
print ""
continue和break的区别就是:虽然都是退出当前循环,continue是继续执行程序,也就是说程序依旧在运行,而break就是直接跳出程序,程序终止。
6、 if/while 语句练习
1)使用while循环输出 1 2 3 4 5 6 8 9 10(注意:没有7)
n = 0
while n < 11:
if n ==7:
pass
else:
print(n)
n+=1
2) 求1-100的所有数的和
n = 1
s = 0
while n < 101:
s += n
n +=1
print(s)
3)输出 1-100 内的所有奇数
n = 1
while n < 101:
if n%2 != 0:
print(n)
n+=1
4)求1-2+3-4+5 ... 99的所有数的和
n = 1
s = 0
while n < 101:
if n%2 != 0:
s = s + n
else:
s = s - n
n+=1
print(s)
5) 用户登陆,登陆成功提示Welcome,登陆失败提示Failed,只有三次机会,三次输入错误,自动退出程序
user="czp"
n=0
while n<3:
user1=input("请输入您的用户名:")
if user1==user:
print("Welcome")
break
else:
print("Failed")
n+=1
Pyhton编程(二)之变量、用户输入及条件语句的更多相关文章
- GO语言的基本语法之变量,常量,条件语句,循环语句
GO语言的基本语法之变量,常量,条件语句,循环语句 作为慕课网得笔记自己看 定义变量: 使用var关键字 var a, b, C bool var s1, s2 string = "hell ...
- 第七章 用户输入和while语句
大多数编程都旨在解决最终用户的问题,为此通常需要从用户那里获取一些信息.例如,假设有人要判断自己是否到了投票的年龄,要编写回答这个问题的程序,就需要知道用户的年龄,这样才能给出答案.因此,这种程序需要 ...
- Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
- python学习道路(day1note)(变量,注释,用户输入,格式化输出,if,while,for循环并扩展练习)
python是一门动态解释性的强类型定义语言,其应用范围非常之广 1:进入python语言 #!/usr/bin/env python #_*_coding:utf-8_*_ print(" ...
- c编程:提示用户输入一个0—9的数字进行猜测电脑产生的随机数。一共有三次机会。
// // main.c // 使用c语言进行编程: 题目:由电脑生成一个由0-9之间的随机数,提示用户也输入一个数字进行猜测.当猜测三次仍不中的时候结束程序. 编译环境:Xcode6.3 特别介 ...
- day1(变量、常量、注释、用户输入、数据类型)
一.变量 name = "SmallNine" 等号前面是变量名(标识符),等号后面是变量值 变量的主要作用:就是把程序运算的中间结果临时存到内存里,已备后面的代码继续调用. 变量 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python之路 day1 基础1 变量 for while 用户输入
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- shell编程中用户输入处理(shell 04)
shell编程中用户输入处理1.命令行参数2.脚本运行时获取输入 命令行参数 通过空格来进行分割的位置参数 :$+position $0,$1,$2 ....$0 :程序名$1,$2,$3 ... $ ...
随机推荐
- springboot配置swagger2
.在pom.xml里添加jar包: <dependency> <groupId>io.springfox</groupId> <artifactId>s ...
- Alpha 版本测试和发布说明
Alpha版本测试报告 一bug汇总 做题时答案是错的.(已修复) 每次生成的题目一样(已经修复) 计时没有显示即倒计时,难度不同的功能没有实现(打算修复) 没有导入试卷和错题功能(不打算修复) 二. ...
- 第二次项目冲刺(Beta阶段)5.20
1.提供当天站立式会议照片一张 会议内容: ①检查前一天的任务情况,心得分享以及困难分析. ②制定新一轮的任务计划. 2.每个人的工作 (1)工作安排 队员 今日进展 明日安排 王婧 #42文件分类改 ...
- JAVA基础第七组(5道题)
31.题目:将一个数组逆序输出. 1.程序分析:用第一个与最后一个交换. package com.niit.homework1; /** * @author: Annie * ...
- 201521123068《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 点击查看->高清脑图 1.2 使用常规方法总结其他上课内容. 答:学习继承与多态的知识,了解它们之间的关系:super.ext ...
- 小Writeup
Misc 100 下载文件之后是一个zip压缩包.因为一开始没有给任何提示信息,题目也什么都没说,爆破了一会无果.同时不是伪加密,所以应该是明文攻击.之后官方给出提示,是一个网址. F12进入调试,发 ...
- 201521123112《Java程序设计》第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- 201521123057 《Java程序设计》第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...
- MarkDown换行
现象:1,MarkDown编辑两行显示,但是实际显示为一行: 2,编辑状态中空一行,此时显示为也空了一行,界面显示不友好: 解决:在第一行中最后输入至少2个空格+回车即可显示正常:
- 基于socket.io的实时在线选座系统
基于socket.io的实时在线选座系统(demo) 前言 前段时间公司做一个关于剧院的项目,遇到了这样一种情况. 在高并发多用户同时选座的情况下,假设A用户进入选座页面,正在选择座位,此时还没有提交 ...