python 暂停程序 等待用户输入_Python-基础02-程序与用户交互

用户与程序交互

古时候,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证,成功后,我们再将取款金额输入/告诉他

骄傲的现代人,会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制

什么是与用户交互

程序等待用户输入一些数据,然后程序执行完毕后为用户反馈信息。

为什么要与用户交互

为了让计算机能够像人一样,可以和用户交流,识别用户提供的信息。

input的区别

#在python3中input:用户输入任何值,都存成字符串类型#在python2中input:用户输入什么类型,就存成什么类型raw_input:等于python3的input

如何使用与用户交互

在Python中input和SHELL中的 read用法相同,只不过不需要写上很多选项。

#接收用户输入的用户名username=input('please input your username:')#接收用户输入的密码pwd=input('please input your password:')#打印出 用户名和密码print(username,pwd)
e8272f0b07398d173518bd57adc84e04.png

注释

随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有些代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。 另外,你以后在工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,这产会挨打的。所以为了避免这种尴尬的事情发生,一定要增加你代码的可读性。

代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" """

代码注释的原则:

#1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可#2. 注释可以用中文或英文,但不要用拼音

文件头

#!/usr/bin/env python# -*- coding: utf-8 -*- 

格式化输出

程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式

比如要求用户输入用户名和年龄,然后打印如下格式:

My name is zls,I'm 18 years old.

很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。

这就用到了占位符,如:%s、%d

#%s字符串占位符:可以接收字符串,也可接收数字print('My name is %s,my age is %s' %('zls',18))#%d数字占位符:只能接收数字print('My name is %s,my age is %d' %('zls',18))print('My name is %s,my age is %d' %('zls','18')) #报错#接收用户输入,打印成指定格式name=input('your name: ')age=input('your age: ') #用户输入18,会存成字符串18,无法传给%dprint('My name is %s,my age is %s' %(name,age))#注意:#print('My name is %s,my age is %d' %(name,age)) #age为字符串类型,无法传给%d,所以会报错

练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式

------------ info of zls -----------Name : zlsAge : 18Sex : maleJob : Teacher ------------- end -----------------

数据类型(简单介绍)

什么是数据?为何要有多种类型的数据?

1.数据即变量的值,如age=18,18则是我们保存的数据。

2.变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识

数字

1.int整型

作用:记录年龄,等级,QQ号,各种号码

定义:age=10 #age=int(10)

age=18print(age,type(age))#结果18 
a0032cee68e0d6525f78199f4b2091c2.png

2.float浮点型

作用:记录工资,身高,体重

定义:salary=3.1 #salary=float(3.1)

salary=3.1 #salary=float(3.1)print(salary,type(salary))#结果3.1 
488ac736190762ed3132ba7e9f52ab14.png

其他数据类型了解

#int(整型)在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807#long(长整型)跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。注意:在Python3里不再有long类型了,全都是int>>> a= 2**64>>> type(a) #type()是查看数据类型的方法>>> b = 2**60>>> type(b)#complex复数型>>> x=1-2j>>> x.imag-2.0>>> x.real1.0其他数据类型(了解部分)

字符串类型

字符类型:str

作用:描述性的内容,如姓名,性别,国籍,种族

定义:在引号内,包含一系列字符,引号可以是:单引号,双引号,三引号

在python中,加了引号的字符就是字符串类型,python并没有字符类型。

name='zls'print(name,type(name))name1="zls"print(name1,type(name1))name2='''zls'''print(name2,type(name2))name3="""zls"""print(name3,type(name3))#结果zls zls zls zls 
cbbda1f98005cc23b6113ca8bce55328.png

三引号,一般在多行数据使用,例如:

info='''name:zlsage:18job:teacher'''print(info)#结果name:zlsage:18job:teacher
0062b64526b1cf311f7bbed7b4c297e9.png

引号的嵌套:

如果说,我有一个需求,我想要给人名加上引号打印出来

My Name Is 'zls'.

错误写法:

name='My Name Is 'zls'.'print(name)
e4ebc50563233bf95d7ee7226bfc19cb.png

正确写法:

name="My Name Is 'zls'."print(name)#结果My Name Is 'zls'.
72aab821e83ff011b8fc674403f639da.png

一定要搞清楚,引号的配对。

Python中独特用法:字符串运算

1.字符串相加(字符串拼接)

字符串只能与字符串相加,但是效率不高

message1='hello'message2='world'print(message1+message2)#结果helloworld
b8390d544e421d813df71281086964e5.png

内存变化

0fdad2f09da72728fa5fd45d32965866.png

2.字符串相乘

字符串之间可以相乘,做乘法运算,但是不是字符串与字符串相乘,是字符串与数字相乘。

print('hello'*10)print('华丽的分割线'+'-'*100)#结果hellohellohellohellohellohellohellohellohellohello华丽的分割线----------------------------------------------------------------------------------------------------
7cd4bf78461a8f22fe7d235b97d60732.png

列表类型

如果定义一个人的爱好,使用字符串类型,爱好是多种多样的,例如:

hobbies='eat music sleep play'

如何取出第三个爱好?

列表类型:list

作用:记录/存放多个值,可以方便的出去来指定位置的值,比如,人的多个爱好,一堆学生的姓名。

定义:在[]内用逗号分隔开,多个任意类型的值。

例如:

list=[1,3.1,'zls',['a','b']]

列表类型如何取值?

list=[1,3.1,'zls',['a','b']]print(list)#结果[1, 3.1, 'zls', ['a', 'b']]
975502458ed2ad3ddbe018eabb6f4991.png
list=[1,3.1,'zls',['a','b']]print(list[0])print(list[1])print(list[2])print(list[3])print(list[3][0])print(list[3][1])#结果13.1zls['a', 'b']ab
b55517e030f9cf6458a1b3791bd66645.png

小练习

#请取在下面列表中,取出bgx的爱好?student_info=[['zls',18,'play'],['egon',19,'beautiful girl'],['bgx',20,'play beautiful girl']]#取出下面列表中的jlist=['a','b',['c','d',['e',['f',['g',['h','i','j']]]]]]

字典类型

为何还要用字典?

info=['zls',18,'male',['oldboy',200,'SH']]如何取出,性别和所在公司名称?info=['zls',18,'male',['oldboy',200,'SH']]print(info[2])print(info[3][0])#存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下:>>> info=['zls','male',18]#定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用>>> info[2]#但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄#即: name, sex, ageinfo=['zls','male',18]#而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典

字典类型作用:

记录多个key:value值,优势是每一个值value都有其对应关系/映射关系key,而key对value有描述性的功能。可以更为方便高效地取值。

字典类型定义:

在{}内用逗号分隔开多个key:value元素,其中value可以死任意的数据类型,而key通常应该是字符串类型。

info={'name':'zls','sex':'male','age':18} #info=dict({'name':'zls','age':18,'sex':'male'})print(type(info))

如何取值?

info={'name':'zls','sex':'male','age':18}print(info['name'])print(info['sex'])print(info['age'])#结果zlsmale18
261a5cb5733f29321ea2d279cdc8040b.png

字典嵌套取值:

#取出下列字典的公司名info={ 'name':'zls', 'hobbies':['play','eat'], 'company_info':{ 'name':'Oldboy', 'type':'education', 'emp_num':40, }}print(info['company_info']['name'])

注意:在python中,字典是无序的,python2中可以明显看出,但是python3中有算法的优化,所以看起来像是有序的。

小练习

#取出oldboy的第二个爱好students=[ {'name':'zls','age':18,'hobbies':['play','sleep']}, {'name':'oldboy','age':40,'hobbies':['read','sleep']}, {'name':'bgx','age':58,'hobbies':['music','read','sleep']},]

什么时候选择列表,什么时候选择字典?

列表:当你存的多个数据,是同一种类,或者同一种性质的,例如:所有人的名字。

字典:当你存的多个数据,非同一种类,或者非同种性质的,例如:多个人的信息,名字、年龄,身高。

布尔类型

布尔类型:bool

作用:用来作为判断条件去用

1.布尔值,一个True一个False

2.计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识

定义:

tag=True # tag=bool(True)tag1=Falseprint(type(tag))print(type(tag1))#结果age=18print(age>20)print(age>=20)print(age>=20)print(age==20)#结果FalseFalseFalseTrue

is 和 == 的区别

x=100y=100print(x==y)print(x is y)#结果TrueTrue
4a45b354cb1216fab5f0f2f2f14ca429.png

但是,如果是在python解释器当中,那么结果如下

MacBook-Pro:~ driverzeng$ python3Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28)[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值