一篇搞定python基础(二)

举报
rivers 发表于 2022/04/14 14:08:41 2022/04/14
【摘要】 python入门基础(二),这是啃书的第二天文章,主要介绍了运算符、优先级、注释、input函数等

八、python中的类型转换

8.1、类型转换—str()函数与int()函数

#数据类型转换:将不同数据类型的数据拼接在一起
#str()   将其他数据类型转换为字符串,也可用引号转换   str(123)   '123'
#int()   将其他数据类型转换为整数,文字类和小数类字符串无法转换为整数,浮点数转化为整数抹零取整 int('123')  int(9.8)
#float() 将其他数据类型转换为浮点数,文字类无法转换为整数,整数转化为浮点数,末尾.0

name='张三'
age=20
print(type(name),type(age))#说明name与age数据类型不相同
#print('我叫'+name+',今年'+age+'岁')#当将str类型和int类型进行连接时,报错,解决方案,类型转换
print('我叫'+name+',今年'+str(age)+'岁')#将int类型通过str()函数转成了str类型

结果为:
<class 'str'> <class 'int'>
我叫张三,今年20print('---------str()将其他类型转换为str类型-----------')
a=10
b=198.8
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),type(str(a)),type(str(b)),type(str(c)))

结果为:
---------str()将其他类型转换为str类型-----------
<class 'int'> <class 'float'> <class 'bool'>
10 198.8 False <class 'str'> <class 'str'> <class 'str'>

print('---------int()将其他类型转换为int类型-----------')
s1='128'
f1=98.7
s2='76.77'
ff=True
s3='hello'
print(type(s1),type(f1),type(s2),type(ff),type(s3))
print(int(s1),type(int(s1))) #将str转成int类型,字符串为数字串
print(int(f1),type(int(f1))) #float转成int类型,截取整数部分,舍掉小数部分
#print(int(s2),type(int(s2))) #str转成int类型,报错,因为字符串为小数串
print(int(ff),type(int(ff)))
#print(int(s3),type(int(s3))) #str转成int类型,字符串必须为数字串(整数),非数字串是不允许被转换

结果为:
---------int()将其他类型转换为int类型-----------
<class 'str'> <class 'float'> <class 'str'> <class 'bool'> <class 'str'>
128 <class 'int'>
98 <class 'int'>
1 <class 'int'>

8.2、类型转换—float()函数

print('---------float()将其他类型转换为float类型-----------')
p1='128.98'
p2='76'
p3=True
p4='hello'
p5=98
print(type(p1),type(p2),type(p3),type(p4),type(p5))
print(float(p1),type(float(p1)))
print(float(p2),type(float(p2)))
print(float(p3),type(float(p3)))
#print(float(p4),type(float(p4)))#字符串中的数据如果是非数字串,则不允许转换
print(float(p5),type(float(p5)))

结果为:
---------float()将其他类型转换为float类型-----------
<class 'str'> <class 'str'> <class 'bool'> <class 'str'> <class 'int'>
128.98 <class 'float'>
76.0 <class 'float'>
1.0 <class 'float'>
98.0 <class 'float'>

九、python中的注释

#三种类型的注释
#单行注释      以#开头直到换行结束
#多行注释      将一对三引号之间的代码称为多行注释
#中文编码声明注释   在文件开头加上中文声明注释,用以指定源码文件的编码格式


#输入功能(单行注释)
print('hello')

'''嘿嘿,
我是
多行注释'''
#找到.py文件的路径,用记事本打开,点击另存为,就可以看到.py文件的编码格式
#中文编码,在文件开头加上中文声明注释,这样写  #coding:utf-8

十、input函数及其使用

#从键盘输入两个整数,计算两个整数的和
a=input('请输入一个整数:')
a=int(a)   #将转换之后的结果存储到a中,也可以这样写a=int(input('请输入一个整数:'))
b=input('请输入另一个整数:')
b=int(b)
print(type(a),type(b))
print(a+b)

结果为:
请输入一个整数:1
请输入另一个整数:2
<class 'int'> <class 'int'>
3

十一、python中的运算符

11.1、运算符—算数运算符

print(1+1)  #加法运算
print(1-1)  #减法运算
print(2*4)  #乘法运算
print(1/2)  #除法运算

结果为:
2
0
8
0.5

print(11//2) #整除运算,只要整数部分

结果为:
5

print(11%2)  #取余运算,只要余数部分

结果为:
1

print(2**3)  #幂运算,表示2的3次方

结果为:
8

print(9//4)
print(-9//-4)
print(9//-4) #一正一负的整数公式,向下取整,  9/-4等于负的二点几个,向下取整就是负三

结果为:
2
2
-3

print(9%-4) #-3  一正一负公式   余数=被除数-除数*商   9-(-4)*(-3)  9-12=-3
print(-9%4) #3   -9-4*(-3)  -9+12=3

结果为:
-3
3

11.2、运算符—赋值运算符

#赋值运算符:运算顺序从右到左
i=3+4
print(i)

结果为:
7

a=b=c=20   #链式赋值
print(a,id(a))
print(b,id(b))
print(c,id(c))

结果为:
20 2869654612880
20 2869654612880
20 2869654612880

print('------支持参数赋值--------')
m=20
m+=30  #相当于m=m+30
print(m)

结果为:
50

m-=10  #相当于m=m-10
print(m)

结果为:
40

m*=2  #相当于m=m*2
print(m)

结果为:
80

m/=3  #相当于m=m/3
print(m,type(m))

结果为:
26.666666666666668 <class 'float'>

m//=2 #相当于m=m//2  这里是整除
print(m)

结果为:
13.0

m%=3  #相当于m=m%3   这里是取余
print(m)

结果为:
1.0


print('------支持系列解包赋值--------')
a,b,c=20,30,40   #左右变量的个数要一致
print(a,b,c)

结果为:
20 30 40

print('------交换两个变量的值--------')
a,b=10,20
print('交换之前:',a,b)
a,b=b,a  #交换
print('交换之后:',a,b)

结果为:
交换之前: 10 20
交换之后: 20 10

11.3、运算符—比较运算符

#比较运算符,结果为bool类型
a,b=10,20
print('a>b吗?',a>b)
print('a<b吗?',a<b)
print('a<=b吗?',a<=b)
print('a>=b吗?',a>=b)
print('a==b吗?',a==b)
print('a!=b吗?',a!=b)

结果为:
a>b吗? False
a<b吗? True
a<=b吗? True
a>=b吗? False
a==b吗? False
a!=b吗? True

'''=为赋值运算符,==为比较运算符
一个变量由标识、类型、值组成
==  比较的是值
is  比较对象的标识
'''

a=10
b=10
print(a==b)     #True,说明a与b的value相等
print(a is b)   #True,说明a与b的id标识相等

结果为:
True
True

lst1=[11,22,33,44]
lst2=[11,22,33,44]
print(lst1==lst2)
print(lst1 is lst2)
print(id(lst1))
print(id(lst2))
print(a is not b)      #表示a的id与b的id是不相等的
print(lst1 is not lst2)  #表示lst1的id与lst2的id是不相等的

结果为:
True
False
2418910705984
2418910523328
False
True

11.4、运算符—布尔运算符

#布尔运算符
a,b=1,2
print('-------and 并且--------')
print(a==1 and b==2)    #True and True  -->  True
print(a==1 and b<2)     #True and False -->  False
print(a!=1 and b==2)    #False and True -->  False
print(a!=1 and b!=2)    #False and False --> False

结果为:
True
False
False
False

print('-------or 或者--------')
print(a==1 or b==2)    #True or True  -->  True
print(a==1 or b<2)     #True or False -->  True
print(a!=1 or b==2)    #False or True -->  True
print(a!=1 or b!=2)    #False or False --> False

结果为:
True
True
True
False

print('-------not 对bool类型操作数取反--------')
f=True
f2=False
print(not f)
print(not f2)

结果为:
False
True

print('-------in 与 not in--------')
s='helloworld'
print('w' in s)
print('k' in s)
print('w' not in s)
print('k' not in s)

结果为:
True
False
False
True

11.5、运算符—位运算

#4的二进制为0100,8的二进制为1000
print(4&8) #按位与&,同为1,结果为1
print(4|8) #按位或|,同为0,结果为0
print(4<<1)  #整体向左移动一位(高位溢出,低位补零,01000),相当于乘以2
print(4<<2)  #整体向左移动两位(高位溢出,低位补零,010000)
print(4>>1)  #整体向右移动一位(高位补零,低位截断,0010),相当于除以2
print(4>>2)  #整体向右移动两位(高位补零,低位截断,0001)

结果为:
0
12
8
16
2
1

11.6、运算符的优先级

算数运算 > 位运算 > 比较运算 > 布尔运算 > 赋值运算

算数运算  **, *, /, //, %, +, -
位运算    <<, >>, &, |
比较运算   >, <, >=, <=, ==, !=
布尔运算   and, or
赋值运算   =
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。