4 运算符 流程控制
1 格式化输出
现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式
name = input("Name:")
age = int(input("Age:"))
job = input("Job:")
hometown = input("Hometown:")
info = """
-----------info of %s-----------
Name: %s
Age: %s
Job: %s
Hometown: %s
-----------end -----------
""" %(name,name,age,job,hometown)
# s=string字符串
# d= digit数字
# f = float
print(info)
运行结果:
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.3 int 转换(%d)
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.4 %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.5 %s是万能的,一般用%s就OK
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 >>> 10%3 >>> 10%5 # 判断奇偶数 >>> 9%2 >>> 10%2 >>> 11%2 >>> 12%2
# 除法 >>> 10/2 5.0 >>> 10/3 3.3333333333333335 # 取整除 >>> 10//2 >>> 10//3
2.2 比较运算符
以下假设变量:a=10,b=20
>>> a >>> b >>> 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 >>> c = c+a >>> c >>> c += a >>> c >>> c -= a >>> c >>> c = c - a >>>
2.4 逻辑运算符
以下假设变量:a=10,b=20
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: 上面所有的条件不满足就走这段
- 猜年龄的游戏(版本1)
age = 22 n=0 while n < 3: print("input you age") user_age = int(input()) if user_age < age: print("small") elif user_age > age: print("big") else: print("bingo") break n += 1 if n==3: choice = input("请问你还想继续游戏吗?y|n") if choice=='y': n=0 else: break
运行结果:
C:\Users\Administrator\PycharmProjects\untitled1\venv\Scripts\python.exe D:/DPJ-1/Demo/Demo/猜谜_1.py input you age 10 small input you age 30 big input you age 22 bingo Process finished with exit code 0
版本二
from random import randint num = randint(1,100) print("请输入你的数字") bingo = False while bingo == False: user_num = int(input()) if user_num < num: print("small") elif user_num > num: print("big") else: print("bingo") bingo = True
运行结果:
C:\Users\Administrator\PycharmProjects\untitled1\venv\Scripts\python.exe D:/DPJ-1/Demo/Demo/猜谜_2.py 请输入你的数字 10 small 50 big 40 big 30 big 20 big 15 big 11 small 14 big 13 bingo Process finished with exit code 0
当你再想我能不能完成的时候,你就已经输了。