一. 格式化输出

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

------------ info of 太白金星  -----------
Name  : 太白金星
Age   : 22
job   : Teacher
Hobbie: 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)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

age     : %d

我们运行一下,但是发现出错了。。。Python基础二

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

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

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

执行输出是

Name:Alex
Age:22
<class 'str'> #怎么会是str
Job:IT

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

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

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

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

问题:现在有这么行代码

msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18)
print(msg)

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

msg = "我是%s,年龄%d,目前学习进度为80%%"%('金鑫',18)
print(msg)

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

二. 流程控制之--while循环

  Why:在生活中,我们遇到过循环的事情吧?比如吃饭睡觉工作,循环听歌等等。在python程序中,循环也是存在的。

  What:那么这个循环在Python中就是流程控制语句while。

2.1,基本循环

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

2.2 演示生活中循环听歌

while True:
    print('')
    print('社会摇')
    print('喜洋洋')
    print('我要这铁棒有何用')

 那么大家都看到了,while循环他的执行结果就是这样一直循环,只要电脑不死机,直至天荒地老....... 他的内部是怎么执行的呢?

Python基础二

 这样大家就能清楚的明白while到底是如何进行循环的了,那么问题也来了:这个循环如何终止呢?

2.3 如何终止循环?

  1. 改变条件(根据上面的流程,只要改变条件,就会终止循环)。
  2. 关键字:break。
  3. 调用系统命令:quit(),exit() 后面会讲到,不建议大家使用。
  4. 关键字:continue(终止本次循环)。

  2.3.1 终止循环的第一个方法:利用改变条件,终止循环。给大家引入标志位的概念。

flag = True
while flag:
    print('')
    print('社会摇')
    print('喜洋洋')
    flag = False
    print('我要这铁棒有何用')
count = 1
flag = True
while flag:
    print(count)
    count = count + 1
    if count == 101:
        flag = False
练习1:输出1~100所有的数字

相关文章: