4 运算符 流程控制

 1.格式化输出

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

name = input("Name:")
age = input("age:")
job = input("job:")
hometown = input("hometown:")

print("-----info of", name , "-----")
print("Name:",name)
print("age:",age)
print("job:",job)
print("hometown:",hometown)
print("-----end-----")

 

  1.1 占位符版本

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

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

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)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
# %s string
# %d int
# %f float
print(info)

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符,

 

 

  1.2 %d版本报错

如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

age     : %d  

我们运行一下,但是发现出错了。。。

 

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

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

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

 

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

 

  1.2 版本 int转换版本

name = input("Name:")
age = int(input("age:"))
job = input("job:")
hometown = input("hometown:")

info = '''
----------info of %s-------
Name:       %s
age:        %d
job:        %s
hometown:   %s
---------end----------------
'''%(name, name, age, job, hometown)
print(info)
Name:alex
age:22
job:it
hometown:xian

----------info of alex-------
Name:       alex
age:        22
job:        it
hometown:   xian
---------end----------------

 

 

   1.3 %f版本

name = input("Name:")
age = int(input("age:"))
job = input("job:")
hometown = input("hometown:")

info = '''
----------info of %s-------
Name:       %s
age:        %f
job:        %s
hometown:   %s
---------end----------------
'''%(name, name, age, job, hometown)
print(info)

# 执行结果
Name:alex
age:22
job:it
hometown:xian

----------info of alex-------
Name:       alex
age:        22.000000
job:        it
hometown:   xian
---------end----------------

 

   1.4 %s版本:%s是万能的,一般都用%s就可以了

name = input("Name:")
age = int(input("age:"))
job = input("job:")
hometown = input("hometown:")
print(type(name),type(age))

info = '''
----------info of %s-------
Name:       %s
age:        %s
job:        %s
hometown:   %s
---------end----------------
'''%(name, name, age, job, hometown)
print(info)


# 执行结果
Name:alex
age:22
job:it
hometown:xian
<class 'str'> <class 'int'>

----------info of alex-------
Name:       alex
age:        22
job:        it
hometown:   xian
---------end----------------

 

2.运算符

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

 

  2.1 算数运算

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

# 取模运算
>>> 10%2
0
>>> 10%3
1
>>> 10%5
0

# 判断奇偶数
>>> 9%2
1
>>> 10%2
0
>>> 11%2
1
>>> 12%2
0

 

 

# 除法
>>> 10/2
5.0
>>> 10/3
3.3333333333333335


# 取整除
>>> 10//2
5
>>> 10//3
3

 

 

 

  2.2 比较运算

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

 

 

>>> a
10
>>> b
15
>>> a == b
False
>>> a != b
True
>>> a <> b     # python3 没有这个方法了
  File "<stdin>", line 1
    a <> b
       ^
SyntaxError: invalid syntax

 

 

  2.3 赋值运算

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

>>> a,b,c
(15, 10, 3)
>>>
>>> c + a
18
>>> c = c+a
>>> c
18
>>> c += a
>>> c
33
>>> c -= a
>>> c
18
>>> c = c - a
>>>

 

  2.3 逻辑运算

 

 

3.流程控制

 

  3.1 单分支 

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

    

    

 

 

  3.2 双分支

if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段

 

 

 

 

name = input("name:")
gender = input("gender:")
age = int(input("age:"))

if gender == "" and age < 28 :
    print("i like the girl")
else:
    print("姐弟恋也很好")

# 运行结果1
name:alex
gender:男
age:22
姐弟恋也很好

# 运行结果2
name:syhanshan
gender:女
age:22
i like the girl

      

 

# 运行结果
name:a;ex
gender:男
age:43
let us go cs
---haha----

# 运行结果
name:alex
gender:女
age:29
姐弟恋也很好
---haha----

 

 

  3.3 多分支

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

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

 

  •  猜年龄的游戏

 

 

# 运行结果
Guess age is :22
it is too small,please be bigger

Guess age is :44
it is too big,please be smaller

Guess age is :27
you got it

 

  • 匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下
A    90-100
B    80-89
C    60-79
D    40-59
E    0-39

 

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

   

# 运行结果
please your score:80
you get B

please your score:44
you get D

     

 

posted @ 2018-01-24 11:45  venicid  阅读(205)  评论(0编辑  收藏  举报