格式化输出

现在有个需要我们录入我们身边好友的信息,格式如下:

------------ info of Alex Li ----------
             Name  : Alex Li
             Age   : 22
             job   : Teacher 
             Hobbie: girl
    ------------- end ----------------    

我们现在能想到的办法就是用一下方法:

name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
a = '------------ info of Alex Li ----------'
b = 'Name:'
c = 'Age:'
d = 'Job:'
e = 'Hobby:'
f = '------------- end ----------------'
print(a+
      '\n'+
      b+
      name+
      '\n'+
      c+
      age+
      '\n'+
      d+
      job+
      '\n'+
      e+
      hobby+
      '\n'+
      f)

# 运行结果
------------ info of Alex Li ----------
Name:meet
Age:18
Job:it
Hobby:3
------------- end ----------------

这样写完全没有问题,但是会不会比较繁琐呢,有些大佬肯定会想这不都实现了吗,还逼叨逼什么啊,那是没有体验过格式化输出有多霸道,我们现在来体验下霸道的姿势

name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobby = input('请输入爱好:')
msg = '''
------------ info of Alex Li ----------
Name  : %s
Age   : %s 
job   : %s 
Hobbie: %s 
------------- end ----------------
    
'''
print(msg%(name,age,job,hobby))

我们但从代码的数量来看,这样就比那样的少,看到这里有细心的老铁们肯定在想%s这是啥玩意?

% 是一个占位, 回想下我们小时候给朋友占位子的场景,是的这个就是占位.那s又是什么呢?  s代码的字符串类型;

具体详细参数如下,大家可以参考一下

%c

转换成字符(ASCII 码值,或者长度为一的字符串)

%r

优先用repr()函数进行字符串转换

%s

优先用str()函数进行字符串转换

%d / %i

转成有符号十进制数

%u

转成无符号十进制数

%o

转成无符号八进制数

%x / %X

转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

%e / %E

转成科学计数法(e / E控制输出e / E)

%f / %F

转成浮点数(小数部分自然截断)

%g / %G

%e和%f / %E和%F 的简写

%%

输出% (格式化字符串里面包括百分号,那么必须使用%%)

%s格式化示例:

name = input('>>>')
s = '1234%s'%name
print(s)

结果:
>>>88
1234'88'

%r格式化示例:

name = input('>>>')
s = '1234%r'%name
print(s)

结果:
>>>88
1234'88'

# 注意看我们输入的88 用%r格式化后会有引号,这是因为调用了我们内置的repr方法
repr这个方法是让编程人员快速分辨数据类型的方法

%d|%i格式化示例:

name = input('>>>')
s1 = '1234%d'%int(name)
s2 = '1234%i'%int(name)
print(s1)
print(s2)

结果:
>>>89
123489
123489
# %d和%i这种格式化只能用数字来填补占位

%%格式化示例:

num = input('>>>')
s= '目前学习进度:%s%%'%num
print(s)

结果:
>>>80
目前学习进度:80%

# 如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位

%c格式化示例:

name = input('>>>')
s = '1234%c'%name
print(s)

结果:
>>>5
12345
# 注意点是 %c这个只支持一位数的格式化

%u格式化示例:

name = input('>>>')
s1 = '1234%u'%int(name)
print(s1)

结果:
>>>88
123488

%o格式化示例:

name = input('>>>')
s1 = '1234%o'%int(name)
print(s1)

结果:
>>>444
1234674 
# 注意看我输入的444但是却不是444因为这样给转换成了8进制的数

%x|%X格式化示例:

name = input('>>>')
s1 = '1234%x'%int(name)
s2 = '1234%X'%int(name)
print(s1)
print(s2)

结果:
>>>78
12344e
12344E

%e|%E格式化示例:

name = input('>>>')
s1 = '1234%e'%int(name)
s2 = '1234%E'%int(name)
print(s1)
print(s2)

结果:
>>>7777
12347.777000e+03
12347.777000E+03

%f|%F格式化示例:

name = input('>>>')
s1 = '1234%F'%int(name)
s2 = '1234%f'%int(name)
print(s1)
print(s2)

结果:
>>>45
123445.000000
123445.000000

while 循环

在生活中,我们遇到过循环的事情吧?比如循环听歌。在程序中,也是存才的,这就是流程控制语句 while

万恶之源 - Python运算符与编码

 

1、基本循环

1
2
3
4
5
6
while 条件:
      
    # 循环体
  
    # 如果条件为真,那么循环则执行
    # 如果条件为假,那么循环不执行

练习

使用while循环求出1-100所有数的和

输出 1- 100内的所有奇数 

输出 1- 100内所有的偶数

2、break

break 用于退出当层循环

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python
#-*- coding:utf-8 -*-
 
num = 1
while num <6:
    print(num)
    num+=1
    break
    print("end")

练习

用户登录(三次机会重试)

3、continue

continue 用于退出当前循环,继续下一次循环

#!/usr/bin/env python
#-*- coding:utf-8 -*-
 
num = 1
while num <6:
    print(num)
    num+=1
    continue
    print("end")

练习

使用while循环打印  1 2 3 4 5 6 8 9 10

4、while else

while True:
    if 3 > 2:
        print('你好')
        break
else:
    print('不好')


while True:
    if 3 > 2:
        print('你好')
print('不好')

# 大家看到的这个是不是感觉效果是一样的啊,其实不然
# 当上边的代码执行到break的时候else缩进后的内容不会执行

练习

1.首先让用户输入序号选择格式如下:

  0.退出

  1.开始登录

  如果用户选择序号0 就提示用户退出成功

  如果用户选择序号1就让用户输入用户名密码然后进行判断,正确就终止循环,错误重新输入
2.用户可持续输入(用while循环),用户使用的情况:

  输入A,则显示走大路回家,然后在让用户进一步选择:

  是选择公交车,还是步行?

  选择公交车,显示10分钟到家,并退出整个程序。

  选择步行,显示20分钟到家,并退出整个程序。

  输入B,则显示走小路回家,并退出整个程序。

  输入C,则显示绕道回家,然后在让用户进一步选择:

  是选择游戏厅玩会,还是网吧?

  选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。

  选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。

  

运算符

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

算数运算

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

万恶之源 - Python运算符与编码

比较运算

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

万恶之源 - Python运算符与编码

赋值运算

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

万恶之源 - Python运算符与编码

逻辑运算

万恶之源 - Python运算符与编码

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

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

例题:

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

万恶之源 - Python运算符与编码
3>4 or 4<3 and 1==1
1 < 2 and 3 < 4 or 1>2 
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
万恶之源 - Python运算符与编码

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

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

 万恶之源 - Python运算符与编码

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

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
运行结果:
8
0
3
 
0 or 4 and 3 or 7 or 9 and 6分解:
因为and的级别比or的级别高,所以先执行and就是
 
0 or 3 or 7 or 6
 
然后运算or
 
3 or 7 or 6
 
3 or 6
 
因为or运算前边条件成立就不考虑后边的值了
 
所以最后的结果就是3

in,not in :

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

例如:

#print('喜欢' in 'dkfljadklf喜欢hfjdkas')
#print('a' in 'bcvd')
#print('y' not in 'ofkjdslaf')

练习

有个字符串 s = "alex",如果alex在我们输入的内容中就提示:你说的对.否则就提示不存在

s = "alex"
s_input = input("请输入内容:")
if s in s_input:
    print("你说的对")
else:
    print("不存在")
答案

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案