本节需要了解
true='真'
True='真'
File "", line 2
True='真'
^
SyntaxError: cannot assign to True
import keyword # 导入keyword库
print(keyword.kwlist) # 查看保留字
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
my_name_1='爱听歌的阿漓' # my_name_1就是一个标识符(字母,数字,下划线)
print(my_name_1)
爱听歌的阿漓
# 创建一个整型变量并为其赋值为8
luck_number=8
# 字符串类型变量
my_name='爱听歌的阿漓'
print(my_name+"的幸运数字是:",luck_number,sep='')
爱听歌的阿漓的幸运数字是:8
# type()可以查看数据类型
luck_number=8
print('luck_number的数据类型是:',type(luck_number))
luck_number的数据类型是:
num1=num2=1024 # 连续赋值
print(id(num1)) # 查看num1的地址
print(id(num2)) # 查看num2的地址
99802416
99802416
常量一般默认都是大写字母
num=987 # 默认十进制
num2=0b1010101 # 使用二进制表示整数
num3=0o765 # 使用八进制表示整数
num4=0x87ABF # 使用十六进制表示整数
print(num)
print(num2)
print(num3)
print(num4)
987
85
501
555711
height=187.6 # 身高
print(height)
print(type(height)) # 查询height的数据类型
x=10
y=10.0
print('x的数类型是:'+str(type(x)))
print('y的数类型是:'+str(type(y)))
187.6
x的数类型是:
y的数类型是:
# 浮点数不确定尾数问题
print(0.1+0.2)
0.30000000000000004
如果想要保留一位小数可以使用内置函数round()
print(round(0.1+0.2,1)) # 1是只保留一位小数
0.3
x=123+456j
print('实数部分:',x.real)
print('虚数部分:',x.imag)
实数部分: 123.0
虚数部分: 456.0
# 单行字符串
city='北京'
address='西安市雁塔区'
print(city)
print(address)
print('-------------------')
# 多行字符串(三对单引号或者三对双引号)
info='''地址:西安市雁塔区
收件人:爱听歌的阿漓
手机号:1860000000
'''
print(info)
北京
西安市雁塔区
-------------------
地址:西安市雁塔区
收件人:爱听歌的阿漓
手机号:1860000000
print('北京')
print('欢迎您')
print('------------')
print('北京\n欢迎您') # 遇到\n即换行,可以连续换行
print('北\n京\n欢\n迎\n您')
print('-----------')
print('北京\t欢迎您') # 一个\t是八个空格
print('北京北京\t欢迎您') # 一个\t是八个空格
print('-----------')
print('老师说:\'好好学习,天天向上\'')
print('老师说:\"好好学习,天天向上\"')
print('-----------')
print(r'北\n京\n欢\n迎\n您') # 加上r后转义字符将会失效
北京
欢迎您
------------
北京
欢迎您
北
京
欢
迎
您
-----------
北京 欢迎您
北京北京 欢迎您
-----------
老师说:'好好学习,天天向上'
老师说:"好好学习,天天向上"
-----------
北\n京\n欢\n迎\n您
s='HELLOWORLD'
print(s[0],s[-10]) # 序号0和序号-10表示的是同一个字符
print('北京欢迎您'[4])
print('北京欢迎您'[-1])
print('---------切片--------')
print(s[2:7]) # 正向递增序列
print(s[-8:-3]) # 反向递减序列
print('-----------------')
# 切片默认从0开始
print(s[:5])
print(s[5:])
H H
您
您
---------切片--------
LLOWO
LLOWO
-----------------
HELLO
WORLD
x='2022年'
y='北京东奥会'
print(x+y) # 拼接字符串x与y
print(10*x) # x中的内容输出10次
print(x*10) # x中的内容输出10次
print('北京' in y) # '北京'是否是"北京东奥会"的子字符串
print('上海' in y) # '上海'是否是"北京东奥会"的子字符串
2022年北京东奥会
2022年2022年2022年2022年2022年2022年2022年2022年2022年2022年
2022年2022年2022年2022年2022年2022年2022年2022年2022年2022年
True
False
x=True
print(x)
print(type(x))
print(True+10) # 1+10
print(False+10) # 0+10
print('--------------------')
# 测试对象的bool值
print(bool(18)) # True
print(bool(0),bool(0.0)) # False False
# 总结, 非0的数值型布尔值都为True
print(bool('北京欢迎您')) # True
print(bool('')) # False
print(bool(False)) # False
print(bool(None)) # False
True
11
10
--------------------
True
False False
True
False
False
False
x=10
y=3
z=x/y # 在执行除法运算,将运算的结果赋值给z
print(z,type(z)) # 隐式转换, 通过运算隐式转换了结果的类型
# 将float类转换成int类型, 结果只保留整数部分
print('将float类转换成int类型',int(3.14))
print('将float类转换成int类型',int(3.9))
print('将float类转换成int类型',int(-3.14))
print('将float类转换成int类型',int(-3.9))
# 将int类型转换成float类型
print('将int类型转换成float类型',float(10))
# 将str类型转换成int类型
print(int('100')+int('200'))
# 将str类型转换为float类型
print('将str类型转换为float类型',float('3.14'))
3.3333333333333335
将float类转换成int类型 3
将float类转换成int类型 3
将float类转换成int类型 -3
将float类转换成int类型 -3
将int类型转换成float类型 10.0
300
将str类型转换为float类型 3.14
# 将str类型转换为int或float类型报错的情况
print(int('18a'))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
1 # 将str类型转换为int或float类型报错的情况
----> 2 print(int('18a'))
ValueError: invalid literal for int() with base 10: '18a'
# 将str类型转换为int或float类型报错的情况
print(int('3.14')) # 只能是整数才能帮忙转换
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
1 # 将str类型转换为int或float类型报错的情况
----> 2 print(int('3.14'))
ValueError: invalid literal for int() with base 10: '3.14'
# 将str转换为float类型报错的情况
print(float('45a.987'))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
1 # 将str转换为float类型报错的情况
----> 2 print(float('45a.987'))
ValueError: could not convert string to float: '45a.987'
# chr()与ord()函数
print(ord('漓')) # 28435 Unicode表中对应的值
print(chr(28435)) # 将整数值转成对应的字
28435
漓
# 进制之间的转换操作 十进制与其他进制的转换操作
print('十进制转换为十六进制:'+hex(28435))
print('十进制转换为八进制:'+oct(28435))
print('十进制转换为二进制:'+bin(28435))
十进制转换为十六进制:0x6f13
十进制转换为八进制:0o67423
十进制转换为二进制:0b110111100010011
s='3.14+3'
print(s,type(s))
x=eval(s)
print(x,type(x))
3.14+3
6.140000000000001
# eval()函数经常喝input()函数一起使用,用来获取用户输入的数值型
age=eval(input('请输入您的年龄:'))
print(age,type(age))
height=eval(input('请输入您的身高:')) # 将字符串转换成了float类型,相当于float(height)
print(height,type(height))
请输入您的年龄:18
18
请输入您的身高:178.3
178.3
# 使用eval()报错的情况
# hello='北京欢迎您'
# print(hello)
print(eval('hello'))
# type(eval('hello'))
北京欢迎您
北京欢迎您
str
print('加法:',1+1)
print('减法:',1-1)
print('乘法:',2*3)
print('除法:',10/2) # 发生了隐式转换
print('取余:',10%3)
print('整除:',10//3)
print('幂运算:',2**3) # 2*2*2
加法: 2
减法: 0
乘法: 6
除法: 5.0
取余: 1
整除: 3
幂运算: 8
# 0不能做除数
print(10/0)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
in
1 # 0不能做除数
----> 2 print(10/0)
ZeroDivisionError: division by zero
x=20 # 直接赋值,直接将20赋值给左侧的变量x
y=10
x=x+y # 将x+y的和赋值给x,x的值为30
print(x)
x+=y
print(x) # x=40
x-=y # 相当于x=x-y
print(x) # x=30
x*=y # 相当于x=x*y
print(x) # x=300
x/=y # x=x/y
print(x) # x=30.0,type(x)为float
x%=2 # x=x%2
print(x) # x=0.0
z=3
y//=z # y=y//z
print(y) #y=3
y**=2 # y=y**2
print(y)
# Python支持链式赋值
a=b=c=100 # 相当于执行了a=100 b=100 c=100
print(a,b,c)
# Python还支持系列解包赋值
a,b=10,20 # 相当于执行了a=10 b=20
print('交换前\na的值:',a,'\nb的值:',b)
print('--------如何交换两个变量的值--------')
# 在其他语言中
temp=0
temp=a # 将a的值赋值给temp,temp的值是10
a=b # 将b的值赋值给a,a的值是20
b=temp #将temp的值赋值给b,b的值是10
print('交换后\na的值:',a,'\nb的值:',b)
# 在Python语言中
b,a=a,b # 将a的值赋值给了b,将b的值赋值给了a
print(a,b)
30
40
30
300
30.0
0.0
3
9
100 100 100
交换前
a的值: 10
b的值: 20
--------如何交换两个变量的值--------
交换后
a的值: 20
b的值: 10
10 20
print('98大于90么?',98>90)
print('98小于90么?',98<90)
print('98等于90么?',98==90)
print('98等于98么?',98==98)
print('98不等于90么?',98!=90)
print('98不等于98么?',98!=98)
print('98大于等于98么?',98>=98)
print('98小于等于98么?',98<=98)
98大于90么? True
98小于90么? False
98等于90么? False
98等于98么? True
98不等于90么? True
98不等于98么? False
98大于等于98么? True
98小于等于98么? True
print(True and True)
print(True and False)
print(False and False)
print(False and True)
print('-------------')
print(8>7 and 6>5) # True and True
print(8>7 and 6<5) # True and False
print(8<7 and 6<5) # False and False
print(8>7 and 6>5) # False and True
print(8<7 and 10/0) # 当第一个表达式为False是不计算第二个表达式
True
False
False
False
-------------
True
False
False
True
False
print(True or True)
print(True or False)
print(False or False)
print(False or True)
print('---------------------')
print(8>7 or 10/0)# 当第一个表达式为True是不计算第二个表达式
True
True
False
True
---------------------
True
print(not True)
print(not False)
print(not 8>7)
False
True
False
print(12&8)
8
print(4|8)
12
print(31^22)
9
print(~123)
-124
print(2<<2)
print(2<<3)
8
16
print(8>>2)
print(-8>>2)
2
-2
可以通过添加小括号来提升运算的优先级
1.以下哪项不是Python语言中的保留字( C )
A.False
B.and
C.true
D.if
2.x=5,y=3,执行x,y=y,x之后,x和y的值分别是什么?( B )
A.5,3
B.3,5
C.3,3
D.5,5
3.以下变量名不合法的是( A )
A.for
B._my
C.a_int
D.c888
4.“世界那么大,我想去看看”[7:-3] ( D )
A.我想去
B.想去
C.我想
D.想
5.与0xf2值相等的是( B )
A.342
B.242
C.0b11010010
D.o362
6.以下不是Python内置数据类型的是( A )
A.char
B.int
C.float
D.list
7.以下是print(‘\nPython’)语句运行结果是( A )
A.在新的一行输出:Python
B.直接输出’\nPython’
C.直接输出’\nPython’
D.先输出n,然后新一行输出Python
8.以下选项中,关于Python字符串的描述错误的是( D )
A.字符串是用一对双引号""或者一对单引号’'括起来的零个或者多个字符串
B.字符串是字符的序列,也是序列类型的一种
C.字符串使用的是[]进行索引和切片
D.Python字符串的切片方式是[N:M],不包括M
9.关于赋值语句,以下选项中描述错误的是( B )
A.赋值语句采用符号"="表示
B.赋值与二元操作符可以组合,例如&=
C.a,b=b,a可以实现a和b值的互换
D.a,b,c=b,c,a是不合法的
实战一
题目:从键盘上获取一个4位整数,分别输入个位、十位、百位、千位上的数字
需求:可以使用eval()函数或者int()函数将从键盘获取的数字转成int类型,通过整除和取余操作分别获取数字
运行效果图
num=eval(input('请输入一个四位整数:'))
sd=num%10 # 个位数
tens=num//10%10
hundred=num//100%10
thousands=num//1000
print('个位数:',sd)
print('十位数:',tens)
print('百位数:',hundred)
print('千位数:',thousands)
请输入一个四位整数:1234
个位数: 4
十位数: 3
百位数: 2
千位数: 1
实战二
题目:根据父母的身高预测儿子的身高
需求:从键盘输入父母的身高,并使用eval()可将float()转换输入的数据类型.计算公式:儿子身高=(父亲升高+母亲身高)*0.54
运行效果图
father_height=eval(input('请输入父亲的身高:'))
mother_height=eval(input('请输入母亲的身高:'))
son_height=(father_height+mother_height)*0.54
print('预测儿子的身高为:',round(son_height,2))
请输入父亲的身高:187.4
请输入母亲的身高:165.8
预测儿子的身高为: 190.73