python基础一(2),python基础,---恢复内容开始-


---恢复内容开始---

9,格式化输出。

现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

------------ info of Alex Li -----------Name  : Alex LiAge   : 22job   : TeacherHobbie: girl------------- end ----------------

你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

name = input("Name:")age = input("Age:")job = input("Job:")hobbie = input("Hobbie:")info = ‘‘‘------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name  : %s  #代表 name Age   : %s  #代表 age  job   : %s  #代表 job Hobbie: %s  #代表 hobbie ------------- end -----------------‘‘‘ %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 print(info)
name = input(‘请输入您的名字‘) age = input("请输入年龄") job = input(‘职业‘) hobby = input(‘爱好‘) msg = """----------information of %s----------- name:%s age:%s job:%s hobby:%s ---------end------------"""%(name, name, age, job, hobby)print(msg)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入我们运行一下,但是发现出错了。。。

%d = ‘数字占位符‘$s = ‘字符占位符‘

技术分享图片

说%d需要一个数字,而不是str, what? 我们明明输入的是数字呀,22,22呀。

不用担心 ,不要相信你的眼睛我们调试一下,看看输入的到底是不是数字呢?怎么看呢?查看数据类型的方法是什么来着?type()

name = input("Name:")age = input("Age:")print(type(age))

执行输出是

Name:AlexAge:22<class ‘str‘> #怎么会是strJob:IT

让我大声告诉你,input接收的所有输入默认都是字符串格式!

要想程序不出错,那怎么办呢?简单,你可以把str转成int

age = int(  input("Age:")  )print(type(age))

肯定没问题了。相反,能不能把字符串转成数字呢?必然可以,str( yourStr )

问题:现在有这么行代码

msg = "我是%s,年龄%d,目前学习进度为8%"%(‘panky‘,18)print(msg)

这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?

msg = "我是%s,年龄%d,目前学习进度为8%%"%(‘panky‘,18)print(msg)

这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

10,基本运算符。

运算符

  计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,今天我们暂只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

算数运算

以下假设变量:a=10,b=20

技术分享图片

比较运算

以下假设变量:a=10,b=20

技术分享图片

赋值运算

以下假设变量:a=10,b=20

技术分享图片

逻辑运算

技术分享图片

针对逻辑运算的进一步研究:

  1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

例题:

判断下列逻辑语句的True,False。

技术分享图片
1,3>4 or 4<3 and 1==12,1 < 2 and 3 < 4 or 1>2 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 14,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 85,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
技术分享图片

  2 , x or y , x为真,值就是x,x为假,值是y;

x and y, x为真,值是y,x为假,值是x。

 技术分享图片

例题:求出下列逻辑语句的值。

print(8 or 4)print(0 and 3)print(0 or 4 and 3 or 7 or 9 and 6)

成员运算:

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

技术分享图片

判断子元素是否在原字符串(字典,列表,集合)中:

例如:

print(‘dk-f‘ in ‘dkfljadklf喜欢hfjdkas‘)print(‘a‘ in ‘bcvd‘)print(‘y‘ not in ‘ofkjdslaf‘)

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 [email protected] 和 [email protected])
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 ‘AND‘
^ |位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

11,流程控制之--if。

  假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

if...else 语句

单分支

if 条件:    满足条件后要执行的代码

双分支

"""if 条件:    满足条件执行代码else:    if条件不满足就走这段"""AgeOfOldboy = 48if AgeOfOldboy > 50 :    print("Too old, time to retire..")else:    print("还能折腾几年!")

缩进

这里必须要插入这个缩进的知识点

你会发现,上面的if代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?

在其它的语言里,大多通过{}来确定代码块,比如C,C++,Java,Javascript都是这样,看一个JavaScript代码的例子

var age = 56if ( age < 50){  console.log("还能折腾")    console.log(‘可以执行多行代码‘)}else{   console.log(‘太老了‘)}

在有{}来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。

Python是门超级简洁的语言,发明者定是觉得用{}太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。

Python的缩进有以下几个原则:

顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进同一级别的代码,缩进必须一致官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

多分支

回到流程控制上来,if...else ...可以有多个分支条件

if 条件:    满足条件执行代码elif 条件:    上面的条件不满足就走这个elif 条件:    上面的条件不满足就走这个elif 条件:    上面的条件不满足就走这个    else:    上面所有的条件不满足就走这段

写个猜年龄的游戏吧

age_of_oldboy = 48guess = int(input(">>:"))if guess > age_of_oldboy :    print("猜的太大了,往小里试试...")elif guess < age_of_oldboy :    print("猜的太小了,往大里试试...")else:    print("恭喜你,猜对了...")

上面的例子,根据你输入的值不同,会最多得到3种不同的结果

再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下

A    90-100B    80-89C    60-79D    40-59E    0-39

要求用户输入0-100的数字后,你能正确打印他的对应成绩

score = int(input("输入分数:"))if score > 100:    print("我擦,最高分才100...")elif score >= 90:    print("A")elif score >= 80:    print("B")elif score >= 60:    print("C")elif score >= 40:    print("D")else:    print("太笨了...E")

这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

12,流程控制之--while循环。

12.1,基本循环

while条件:# 循环体# 如果条件为真,那么循环体则执行# 如果条件为假,那么循环体不执行

12.2,循环中止语句

如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句

break用于完全结束一个循环,跳出循环体执行循环后面的语句continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

例子:break

count = 0while count <= 100 : #只要count<=100就不断执行下面的代码    print("loop ", count)    if count == 5:        break    count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0print("-----out of while loop ------")

输出

loop  0loop  1loop  2loop  3loop  4loop  5-----out of while loop ------

例子:continue

count = 0while count <= 100 :     count += 1    if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop        continue     print("loop ", count)print("-----out of while loop ------")

输出

loop  1loop  2loop  3loop  4loop  5loop  95loop  96loop  97loop  98loop  99loop  100loop  101-----out of while loop ------

12.3,while ... else ..

与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

count = 0while count <= 5 :    count += 1    print("Loop",count)else:    print("循环正常执行完啦")print("-----out of while loop ------")

输出

Loop 1Loop 2Loop 3Loop 4Loop 5Loop 6循环正常执行完啦-----out of while loop ------

如果执行过程中被break啦,就不会执行else的语句啦

count = 0while count <= 5 :    count += 1    if count == 3:break    print("Loop",count)else:    print("循环正常执行完啦")print("-----out of while loop ------")

输出

Loop 1Loop 2-----out of while loop ------

四,相关练习题。

1、使用while循环输入 1 2 3 4 5 6 8 9 10

2、求1-100的所有数的和

3、输出 1-100 内的所有奇数

4、输出 1-100 内的所有偶数

5、求1-2+3-4+5 ... 99的所有数的和

6、用户登陆(三次机会重试)

---恢复内容结束---

python基础一(2)

评论关闭