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