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
复制代码

 

 

 

 

posted on   gjwqz  阅读(18)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示