Python学习2
输入输出
数据输入:input 数据输出:print
input使用:
使用input( )语句可以从键盘获取输入,使用一个变量接受(存储)input语句获取的键盘输入数据即可。 注意:input( )语句其实是可以在要求使用者输入内容前。输出提示内容的,方式如下:
#方式一: print("请输入你的名字:") name=input() #方式二: name=input("请输入你的名字:")
Print的使用:
在日常默认的print语句输出内容会自动换行,如果要使用print不换行,可以在后面加上 end=' ',示例如下:
#方式一: 自动换行 print("请输入你的名字:") name=input() #方式二: 不换行 print("你好!",end='') print("我叫%s" %name)
end( )
end参数用来设定print输出的内容是什么结尾,默认是'\n',这就是为什么多个print( )函数输出的内容会分别换行。
我们可以通过设置end=' '来使得结尾什么都不添加,让3个字符连在一起。也可以通过添加其他符号,如空格
print('hello',end='') #end结尾什么都没加 print('world!') print('hello',end='&') print('world')
sep( )
sep函数是用来设定print( )中的多个对象之间的连接符号是什么,默认是空格,print中多个对象之间是用逗号来分隔。
如:
print('hello','world','!') # sep不写,默认空格隔开。 结果是:hello world ! print('hello','world','!',sep='$') #用$来分隔,结果是:hello$world$!
布尔类型
字面量Ture 表示真,字面量False表示假; 比较运算符: ==, !=, >, <, >=, <=
逻辑运算
and 与运算 or 或运算 not 非运算
注意:在Python中,以下变量都会被当成False: 任何数值类型的0、“”或''空字符串、空元组()、空列表[ ]、空字典{ }等
- and与运算
# 两边都是表达式的情况: print(30 > 20 and 40 > 30) # 结果: True # 一边是变量,另一边是表达式的情况: print(20 and (c:=30) > 20) # 结果: True # 两边都是变量的情况: print((b:=30) and (a:=20)) # 结果: 20
- or或运算
# 两边都是表达式的情况: print(30 > 20 or 40 > 30) # 结果: True # 一边是变量,另一边是表达式的情况: print(20 or (c:=30) > 20) # 结果: 20 print(20 or (d:=20) > 30) # 结果: 20 # 两边都是变量的情况: print(20 or 30) # 结果: 20 print(30 or 20) # 结果: 30
- not非运算
print(not(20 > 10)) # 结果:False print(not(10 > 20)) # 结果:true
位运算符
- &与
&会将左右两个整数都转为二进制计算。当同位都为1时取1,否则取0。
注意:负数按补码形式参加按位与运算
运算规则: 0&0=0 0&1=0 1&0=0 1&1=1
只有1和1才为1;其余全为0.
用途:
【取一个数的指定位】 比如取x=1010 1110的低4位,只需要找另一个数y,令y的低4位为1,其余位为0 ,然后将x与y进行按位与运算,即可得到x的指定位
【判断奇偶】只要根据最末位是0还是1来确定,为0就是偶数,为1就是奇数。因此可以用if(a & 1)==0来判断a是不是个偶数
print(3 & 5) # 即 0000 0011& 0000 0101 = 0000 0001,因此 3&5 的值得1。
- |或
运算规则: 0|0=0 0|1=1 1|0=1 1|1=1
参加运算的两个对象只要有一个为1,其值为1
print(3 | 5) # 即 0000 0011| 0000 0101 = 0000 0111,因此,3|5的值得7
- ^异或
运算规则:0^0=0 0^1=1 1^0=1 1^1=0
参加运算的两个对象,只要两个相应位相同即为0,相异即为1
性质:①交换律 ②结合律(a^b)^c=a^(b^c) ③对于任何数x都有:x^x=0,x^0=x ④自反性:a^b^b=a^0=a
- ~取反
参加运算的一个数据,按二进制进行“取反”运算
运算规则: ~1=0 ~0=1
- <<左移
定义:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)
设a=1010 1110, a = a <<2 将a的二进制位左移2位,右补0,即可得: a = 1011 1000
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2
- >>右移
定义:将一个数的各二进制全部右移若干位,正数左补0,负数左补1,右边丢弃。
例如:a = a>>2 将a的二进制位右移2位,左补0 或者 左补1 得看被移数是正还是负。
操作数每右移一位,相当于该数除以2.
进制转换
方法一:
# 2进制转换为8进制 n = input() print(oct(int(n,2))) # 结果是:0o25 # 2进制转换为10进制 n = input() print(int(n,2)) # 结果是:21
方法二:fromat进行格式化数字操作
在format函数的槽中添加一个b即可实现其他进制转换为2进制的操作
在format函数的槽中添加一个o即可实现其他进制转换为8进制的操作
在format函数的槽中添加一个x即可实现其他进制转换为16进制的操作
n = input() # 8进制转换为2进制; 但是此结果是不带ob前缀的 print("{:b}".format(int(n,8))) # 结果:1000001000 # 16进制转换为8进制 print("{:o}".format(int(n,16))) # 结果:10020 # 2进制转换为16进制 print("{:x}".format(int(n,2))) # 结果:a
if语句
if 要判断的条件:
条件成立时,要做的事情
判断语句的结果,必须是布尔类型True 或 False; True会执行if 内的代码语句; False则不会执行
归属于if 判断的代码语句块,需在前方填充4个空格缩进,Python通过缩进判断代码块的归属关系。 不要忘记判断条件后的: 冒号!!要判断的条件可以不用大括号的!
if-else语句
if 条件:
满足条件时要做的事情
else:
不满足条件时要做的事情
else后,不需要判断条件; 和if 的代码块一样,else的代码块同样需要4个空格作为缩进。
if-elif-else语句
if 条件1:
满足条件1应该做的事情
elif 条件2:
满足条件2应该做的事情
······
elif 条件n:
满足条件n应该做的事情
else:
所有条件都不满足应该做的事情
if-elif-else注意: elif可以写多个; 判断是互斥且有序的,上一个满足后 后面的条件就不会再判断了; 可以在条件判断中,直接写input语句,节省代码量。
print("欢迎来到要开心游乐园!") if int(input("请输入您的vip级别(1-5): "))>5: print("您的vip级别大于5,可以免费游玩!") elif int(input("请输入您的身高(cm): "))<120: print("您的身高小于120cm,可以免费游玩!") elif int(input("请输入今天的日期(1-31):"))==1: print("真幸运!今天是1号免费日,可以免费游玩!") else: print("真不好意思!您不满足免票条件,请您购票支付10元!") print("祝您玩的愉快!!")
自由组合嵌套:
如上图所示:第二个if,属于第一个if 内,只有第一个if满足条件,才会执行第二个if
嵌套的关键点在于 空格缩进; 通过空格缩进来决定语句之间的: 层次关系
age=int(input("请输入您的年龄:")) if(age>=18 and age<30): #注意这里用的是and if(int(input("请输入您的入职时间: "))>2 ): print("您可以获得公司礼品一份!") elif(int(input("请输入您的级别: "))>3): print("您可以获得公司礼品一份!") else: print("抱歉!您不符合条件,无法获得礼品!") else: print("抱歉,您不满足基本条件,没有礼品!")
①嵌套判断语句可以用于多条件、多层次的逻辑判断
②嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
③嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系
程序中的循环
while 条件:
条件满足时,想做的事
注意: while的条件需得到布尔类型,True表示继续循环,False表示结束循环
空格缩进不能忘; 要规划好循环终止条件,否则将无限循环。
嵌套循环
注意: ①注意条件的控制,避免无限循环 ②多层嵌套,主要空格缩进来确定层次关系
for循环:
for和while循环的区别: ①while循环的循环条件是自定义的,自行控制循环条件;但是for循环是无法定义循环条件的
②for循环是一种“轮询”机制,是对一批内容进行“逐个处理”,依次取出内容进行处理。
for循环的格式: 注意:①无法定义循环条件,只能被动取出数据进行处理 ②循环内的语句,需要有空格缩进
示例:
#自定义字符串 sentence="happy every day!" #for循环处理字符串 for x in sentence: print(x)
for循环中的待处理数据集,严格上来说,称之为:序列类型
序列类型指,其内容可以一个个依次取出的一种类型,包括: 字符串、列表、元组等等
for循环通常可以和range语句连用起来, range语句的功能是: 获得一个数字序列
语法一:
range(num)
获取一个从0开始,到num结束的数字序列(不包含num本身)
如range(5)取得的数据是:[0,1,2,3,4]
语法二:
range(num1, num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如range(5,10)取得的数据是:[5,6,7,8,9]
语法三:
range(num1, num2, step)
获得一个从num1开始,到num2结束的数字序列(不含num2本身),数字之间的步长,以step为准(Step默认为1)
如range(5,10,2)取得的数据是[5,7,9]
for循环中的临时变量:在编程规范上,作用域只限定在for循环内部;但实际上,是可以在外部访问到临时变量
for i in range(5): print(i) print(i) #外部访问临时变量
可以看出实际上是可以在作用域以外的范围内访问临时变量 i 的,但是建议在for循环之前定义变量 i 再访问临时变量。
for 循环的嵌套用法:
注意: 需要格外注意缩进,嵌套循环通过缩进确定层次关系!!
break和continue:
continue:中断所在循环的当次执行,直接进入下一次; 适用于循环中,因某些原因,临时结束本次循环。
break:直接结束所在循环
注意: continue和break,在for 和while循环中作用一致。 在嵌套循环中,只能作用于所在的循环上,无法对上层循环起作用。
round()函数
在Python中,round()函数是一个内置函数,用于将一个数字四舍五入为指定的小数位数或整数位数。
语法:round(number, digits)
number:要四舍五入的数; digits:要小数点后保留的位数
digits>0:四舍五入到指定的小数位
digits=0:四舍五入到最接近的整数
digits>0:在小数点左侧进行四舍五入
舍入满足银行家舍入算法:
舍去位的数值小于5,直接舍去
舍去位的数值大于等于6,进位舍去
舍去位的数值等于5,分两种情况:5后面还有其它数字(非0),则进位后舍去;若5后面是0,则根据5前一位的奇偶性来判断是否需要进位,奇数进位,偶数舍去。
# 四舍五入到整数位,如果第二个参数为0,则round()函数将把数字四舍五入到最接近的整数 print(round(2.7)) # 结果:3 print(round(2.4)) # 结果:2 # 四舍五入到指定的小数位 digits>0 print(round(2.3456, 2)) # 结果:2.35 print(round(2.3456, 1)) # 结果:2.3 # 四舍五入到指定的整数位,digits<0 print(round(123456, -3)) # 结果: print(round(123456, -4)) # 结果: # 银行家舍入法 print(round(2.5)) # 结果:2 print(round(3.5)) # 结果:4 print(round(3.53, 1)) # 结果:3.5 print(round(3.56, 1)) # 结果:3.6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统