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 ... $ ...
随机推荐
- 201521123042 《Java程序设计》第12周学习总结
本次作业参考文件 正则表达式参考资料 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String ...
- 201521123117 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- java课程设计-猜数游戏
1. 团队名称.团队成员介绍 团队名称:breeze 团队成员 组长:网络1514张朝玮 201521123106 组员:网络1513侯帅军 201521123092 2. 项目git地址 https ...
- Java:接口继承接口 (多继承机制)
在看API文档时,突然发现一个接口可以是其他接口的子接口,这说明接口之间会存在继承的关系.查找了相关的资料,做一个总结. 是继承还是实现 首先要搞清楚接口之间的关系使用的关键字是extends还是im ...
- java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点
一.抽象类和抽象方法 (B 继承 抽象类A) 抽象类:有抽象方法的一定是抽象类 抽象方法:方法名前有abstract修饰,且方法没有方法体,即{},不需要实现任何功能,只是声明 1.抽象类中的方法有 ...
- 将数组分割为几个等长度的子数组(使用slice)
先了解一下slice方法: slice() 1.定义:slice()可从已有数组中截取返回指定的元素,形成一个新的数组: 语法:arrayObject.slice(start,end): 参数 描述 ...
- Failed to load the JNI shared library "XXXXXXX"
今天启动Eclipse的时候出现了这个问题,经过查找, 一般来说这种问题都是因为eclipse 和Java 的兼容性不一致所导致的. 1) 查看Eclipse 和Java 版本 那么我们需要分别查看下 ...
- 【SQL】- 基础知识梳理(六) - 游标
游标的概念 结果集,结果集就是select查询之后返回的所有行数据的集合. 游标(Cursor): 是处理数据的一种方法. 它可以定位到结果集中的某一行,对数据进行读写. 也可以移动游标定位到你需要的 ...
- [js高手之路] es6系列教程 - Set详解与抽奖程序应用实战
我们还是从一些现有的需求和问题出发,为什么会有set,他的存在是为了解决什么问题? 我们看一个这样的例子,为一个对象添加键值对 var obj = Object.create( null ); obj ...
- XtraGrid滚轮翻页
滚轮翻页与传动的翻页更为方便,经过本人一番探讨与琢磨终于在XtraGrid的GridView中实现了鼠标滚轮翻页. 我新建了一个组件继承原本的GridControl,在组件中添加了一个ImageLis ...