当前位置: 首页 > news >正文

Python使用入门(二)

循环语句

while循环

while 条件:

    ...

    ...

    ... 

   

示例 1

print("123")
while True:
    print("hello")
print("end")

 #输出
123
hello
hello
hello 
...

示例2

print("123")
flag = True
while flag:
    print("hello")
    flag = False
print("end")

 输出:

123
hello
end

示例3

print("123")
num = 1
while num < 5:
    print("hello")
    num = num + 1
print("end")

输出

123
hello
hello
hello
hello
end
 

break 

1.break用于在while循环中立即终止循环,无论条件是否满足。

2.break的作用是立即终止当前循环,并跳出循环体,不再执行循环体内的后续代码。

示例1

print("开始")
num = 1
while num < 4:
    print("我爱我的祖国")
    num = num + 1
    if num == 2:
        break
    print("hhhh")
print("结束")

输出: 

开始
我爱我的祖国
结束
 

continue 

1.continue关键字用于在循环中结束本次循环,开始下一次循环。

2.与break不同,continue不会终止所有循环,只是结束当前循环。

示例


print("开始")
i = 1
while True:
    if i == 7:
        i = i + 1
        continue
    print(i)
    i= i + 1
    if i == 101:
        break
print("结束")

输出

开始
1
2
3
4
5
6
8
...

100

结束
 

while else

用的很少

当while循环后的条件不成立时,else块中的代码会执行。

示例

num = 1
while num < 4:
    print("我爱我的祖国")
    num = num + 1
else:
    print("666")

输出:

我爱我的祖国
我爱我的祖国
我爱我的祖国
666
 

字符串格式化

字符串格式化是指通过更便捷的方式实现字符串之间的拼接。 

%

基本格式化
name = "小路"
# 占位符
text = "我叫%s,今年20岁" % "小红"

text1 = "我叫%s,今年20岁" % name

print(text)
print(text1)



#多个占位符
name1 = "小路"
age1 = 20
# 占位符
text4 = "我叫%s,今年%s岁" % ("小红", "20")
text5 = "我叫%s,今年%s岁" % (name1, age1)
text6 = "我叫%s,今年%d岁" % (name1, age1)

print(text4)
print(text5)
print(text6)

#根据名字的占位符
msg = "%(name)s去吃饭了吗?还是去哪玩了吗" % {"name": "小路"}
print(msg)

msg2 = "%(name)s去吃饭了吗?还是去%(place)s玩了吗" % {"name": "小路","place":"网吧"}
print(msg2)
 
# 模板可以复用
text = "我是%s,今年%s岁"
text1 = text % ("小路", 18)
text2 = text % ("小lu", 17)
print(text1)
print(text2)
 百分比处理
# 在百分号格式化中,百分比符号(%)需要特殊处理,以避免歧义。
# 如果文本中包含百分比符号,并且需要进行格式化,需要使用两个百分号来表示。

msg3 = "%s,这片儿我已经下载了%90了,居然断网了" % "兄弟"  #报错.
msg4 = "%s,这片儿我已经下载了%%90了,居然断网了" % "兄弟"  #正确

print(msg4)

format(推荐)

通过位置替换占位符


text1 = "我是{0},今年18岁".format("小路")
print(text1)

text2 = "我是{0},今年{1}岁,明年{2}岁".format("小路", 18, "19")
print(text2)

# 复用
text3 = "我是{0},今年{1}岁,明年还叫{0}".format("小路", 18)
print(text3)
#占位符
text1 = "我是{},今年18岁".format("小路")
print(text1)

#默认从前往后算,默认加{0},{1 }
text2 = "我是{},今年{}岁".format("小路",18)
print(text2)

# 没办法复用,要接着写。
text2 = "我是{},今年{}岁,真实姓名叫{}".format("小路", 18, "小路")
print(text2)

通过名称替换占位符

text1 = "我叫{sb},今年18岁".format(sb="小路")
print(text1)

text2 = "我叫{sb},今年{age}岁".format(sb="小路", age=19)
print(text2)

#也可以复用
text3 = "我叫{sb},今年{age}岁,真实姓名叫{sb}".format(sb="小路", age=19)
print(text3)
#模板可以复用
text ="我是{0},今年{1}岁"
print(text.format("小路",19))
print(text.format("小露",17))

 

f

python3.6版本之后,更便捷

占位符

action = "跑步" 
text = f"小路喜欢{action},跑完满身大汗"
print(text)



name = "xiaolu"
age = 20
text1 = f"嫂子的名字叫{name},今年{age}岁"
print(text1)

 支持表达式 

# 支持表达式
text2 = f"{name}今年{age + 1}岁,明年{22 + 3}岁"
print(text2)

#输出
#xiaolu今年21岁,明年25岁

python3.8之后支持

# python3.8引入 加 = 把表达式和结果都输出
text3 = f"{name}今年{age + 1}岁,明年{22  + 3=}岁"
print(text3)

#结果:
#xiaolu今年21岁,明年22 +3=25岁

进制转换

#进制转换
v1=f"嫂子今年{22}岁"
print(v1)

#转为二进制
v2=f"嫂子今年{22:#b}岁"
print(v2)

#转为二进制 不带进制符号
v21=f"嫂子今年{22:b}岁"
print(v21)

#转为八进制 带进制符号
v3=f"嫂子今年{22:#o}岁"
print(v3)

#转为16进制
v4=f"嫂子今年{22:#x}岁"
print(v4)

#转为16进制
v41=f"嫂子今年{22:x}岁"
print(v41)

输出:

嫂子今年22岁
嫂子今年0b10110岁
嫂子今年10110岁
嫂子今年0o26岁
嫂子今年0x16岁
嫂子今年16岁

  

#也可以使用函数
name="xiaoming"
v5 =f"我是{name.upper()},今年18岁"
print(v5)

#结果:
#我是XIAOMING,今年18岁

运算符 

算术运算符

 如 a=10 b=20

运算符描述实例
+加-两个对象相加a+b的输出结果为30
-减-得到负数或者一个数减去另一个数a-b的输出结果为-10
*乘-两个数相乘或是返回一个被重复若干次的字符串a*b的输出结果为200
/除-x除以yb/a的输出结果为2.0
%取模-返回除法的余数b%a的输出结果为10
**幂-返回x的y次幂a**b为10的20次放,结果为100000000000000000000
//取整除-返回商的整数部分a//b的输出结果为0,9/2的结果为4.5,9//2的结果为4

比较运算符 

运算符描述实例
==等于-比较对象是否相等(a==b)返回False
!=不等于-比较对象是否不相等(a!=b)返回True
<>不等于-比较对象是否不相等和a!=b类似
>大于-返回x是否大于y(a>b)返回False
<小于-返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。与Ture和False等价。(a<b)返回True
>=大于等于-返回x是否大于等于y(a>=b)返回False
<=小于等于-返回x是否小于等于y(a<=b)返回True

  注意 python3中不支持<>

赋值运算符

运算符描述实例
=简单的赋值运算符c=a+b将a+b的运算结果赋值为c
+=加法赋值运算符c+=a 等效于c=c+a
-=减法赋值运算符c-=a 等效于c=c-a
*=乘法赋值运算符c*=a 等效于c=c*a
/=除法赋值运算符c/=a 等效于c=c/a
%=取模赋值运算符c%=a 等效于c=c%a
**=幂模赋值运算符c**=a 等效于c=c**a
//=取整除赋值运算符c//=a 等效于c=c// a

 

成员运算符 

 

运算符描述实例
in如果在指定的序列中找到值返回True,否则返回False.
v1 = "xiao" in "hhxiaolu"
v1为True
v2 = "xiaogou" in "hhxiaolu"
v2为False

not in如果在指定的序列中没有找到值返回True,否则返回False.
v1 = "xiao" in "hhxiaolu"
v1为False
v2 = "xiaogou" in "hhxiaolu"
v2为True

逻辑运算符

        

运算符描述实例
and布尔"与"-如果x为Flase,x and y返回False,否则返回y的计算值 
or布尔"或"-如果x为True,x or y返回True,否则返回y的计算值
not布尔"非"-如果x为True,返回False.如果x为False,返回True

data = 1 > 2

data1 = not data

data1的值为True 

运算符的优先级

常用的:

算术运算符优先级 大于 比较运算符

if 2 + 10 > 11:
    print("真")
else:
    print("假")

比较运算符优先级 大于 逻辑运算符

if 1 > 2 and 2 < 10:
    print("成立")
else:
    print("不成立")

逻辑运算符 内部三个优先级 not>and>or

if not 1 and 1 > 2 or 3 == 8:
    print("真")
else:
    print("假")

#先计算 not 1 为假,会短路 不会执行 1>2
#再计算 False or (3==8)
#计算 False or False 为假
#所以输出假

不确定的话 可以加括号. 

例子:

v = "小狗" and "xiaolu"
# 第一步 :当and和or前面接的不是true或false,而是字符串或数字时,它们会被转换为布尔值。 (True and True)
# 第二步:判断本次操作取悦于谁?由于前面的是True,所以本次逻辑判断取决于后面的值。
# 所以后面的值等于多少,最终结果就是多少 (v="xiaolu")
print(v)  # 输出xiaolu

v1 = "" and "xiaolu"
# 第一步转为布尔值,""为false.
# 由于前面的值为false,所以and逻辑判断一定为false
print(v1)  # 输出""

v2 = 1 or 8
# 第一步转为布尔值,1为True
# 由于前面的值为True,所以or逻辑判断一定为True
print(v2)  # 输出1


v3 = 0 or 8
# 第一步转为布尔值,0为False
# 由于前面的值为False,所以or逻辑判断取决于后面的 8,
print(v3)  # 输出8

or   看第一个值,如果第一个值为真,结果就是第一个值,否则结果就是第二个值。

 and看第一个值, 如果第一个值为真,   结果就是第二个值,否则结果就是第一个值。

如果多个and or先计算and 再计算 or

v1 = 0 or 4 and 3 or 7 or 9 and 6
# v1 = 0 or (4 and 3) or 7 or (9 and 6)
# v1 = 0 or 3 or 7 or 6
# v1 = 3 or 7 or 6
# v1=3 or 6
# v1=3
print(v1)


v2 = 8 or 3 and 4 or 2 and 0 or 9 and  7
# v2 = 8 or (3 and 4) or (2 and 0) or (9 and  7)
# v2 = 8 or 4 or 0 or 7
# v2 =8 or 0 or 7
# v2 =8 or 7
# v2=8
print(v2)


v3 = 0 or 2 and 3 and 4 or 6 and 0 or 3
# v3 = 0 or (2 and 3) and 4 or (6 and 0) or 3
# v3 = 0 or (3) and 4 or 0 or 3
# v3 = 0 or 4 or 0 or 3
# v3 = 4 or  0 or 3
# v3=4 or 3
# v3=4
print(v3)

输出结果:

3
8
4

如果有not先计算note

 

v4 = not 8 or 3 and 4 or 2
# v4 = (not 8) or (3 and 4) or 2
# v4 = (not 8) or 4 or 2
# v4 = 4 or 2
# v4 = 4
print(v4)


输出:4

相关文章:

  • 侯捷 C++ 课程学习笔记:C++ 新标准11/14
  • 力扣练习之确定两个字符串是否接近
  • 【net2】mii,mdio,ncsi,bond,vlan,dns,ipv6
  • FPGA学习(三)——LED流水灯
  • 【redis】hash基本命令和内部编码
  • 串口全解析
  • 【Go每日一练】实现简单的控制台计算器
  • LVS + Keepalived 高可用集群
  • 《MySQL数据库从零搭建到高效管理|库的基本操作》
  • Android调试工具之ADB
  • QtDataVisualization使用
  • 100.Vue3 + OpenLayers:使用 marker-feature 添加 Marker
  • linux基本操作系统2
  • How to install a package in offline scenario in Ubuntu 24.04
  • bean的加载过程
  • WPF从初学者到专家:实战项目经验分享与总结
  • Gymnasium Taxi‐v3 环境 与 Q-learning 算法 —— 强化学习入门 I
  • 2min搞定~Mac Pro 编译安装 Nginx 1.8.1
  • IP地址到地理地址查询的实现逻辑
  • 【Go】字符串相关知识点
  • 我使馆就中国公民和企业遭不公正待遇向菲方持续提出严正交涉
  • 国家卫健委通报:吊销肖某医师执业证书,撤销董某莹四项证书
  • 南方降水频繁暴雨连连,北方高温再起或现40°C酷热天气
  • 美国务院批准向土耳其出售导弹及相关部件,价值3.04亿美元
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 来沪一个月几乎未花住宿钱,女子虚构卫生问题屡薅酒店羊毛被刑拘