第3章-基本数据类型

第3章-基本数据类型

1、数据类型

Python中提供了3种数字类型:整数类型、浮点数类型和复数类型
(1)、整数类型
Python中的整数没有取值范围的限制,理论上来讲只要内存能够存储,Python可以使用任意大小的整数。
整数类型有4种进制表示方式:十进制、二进制、八进制、十六进制。默认情况下,采用十进制,如果需要用其他进制需要增加引导符号。
在这里插入图片描述
十进制转二进制用bin(十进制数),bin返回值为二进制
十进制转十六进制用hex(十进制数) hex返回值为十六进制
十进制转八进制用oct(十进制数),oct返回值为八进制
任何进制转10进制用int(要转的数字’,当前的进制)

(2)、浮点数类型

  • 浮点数表示带有小数的数值,在Python语言中的浮点数必须带有小数部分,小数部分可以是0.比如说27是整数,27.0就是浮点数。
  • 浮点数有2种表示形式:十进制表示形式和科学计数法表示形式。浮点数没有其他进制表示形式。
  • 科学计数法使用字母e或者E作为幂的符号,以10为基数。比如说:1.02e5表示1.02*10^5
  • 浮点数的取值范围和小数精度受不同计算机系统的限制。
  • 浮点数的取值范围[-10308,10308]

相同数值的整数和浮点数在进行幂运算时结果不同,两个浮点数相加时存在一个特例:
在这里插入图片描述
因为Python语言的浮点数运算存在一个不确定尾数问题。所以0.1+0.2 != 0.3.
可以利用round()函数去解决这个问题round(0.1+0.2 ) == 0.3.

(3)、复数类型

  • 复数类型和数学上的复数一致,表示形式不同,在Python用a+bj表示,其中a为实部,b为虚部。当b=1时,不能省略即1j,且j表示一个变量。
    • 在 Python中,复数虚部通过后缀“J”或“j”来表示。复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和 z.imag分别获取实数部分和虚数部分。
a=7372+88989j
print(a.real)
print(a.imag)
"""
运行结果:
7372.0
88989.0
"""

(4)、数值运算操作符

Python提供了9个基本的数值运算操作符
在这里插入图片描述
数值运算可能改变结果的数据类型,类型的改变与运算符有关。
规则如下:

  • 整数和浮点数混合运算,输出结果是浮点数
  • 整数之间运算,产生结果类型与操作符有关,除法(/)运算的结果是浮点数
  • 整数或浮点数与复数运算,运算结果是复数
    数值运算符与赋值运算符相连组成增强赋值操作符。如:+=、-=、/=、*=、%=、**=,使用增强赋值操作符能够简化对同一变量赋值语句的表达式。
    注意事项:属猪运算符与赋值运算符的=之间不能有空格。

(5)、数值运算函数

Python解释器自带的一些内置函数。
在这里插入图片描述

(6)、字符串切片

  • 切片:指对操作的对象截取其中一部分的操作,字符串、列表、元组都支持切片操作
  • 语法:序列[开始位置下标:结束位置下标:步长] ,不包含结束位置下标数据,步长为选取间隔,正负均可,
  • 默认为1

(7)、format()方法的介绍

  • format()用于格式化方法,即用来控制字符串和变量的显示效果。
  • 语法格式:<模板字符串>.format(<逗号分隔的参数>)
  • 可以通过format()参数的序号指定参数的使用,参数从0开始编号。
    format()方法的槽除了包括参数序号,换可以包括格式控制信息。格式控制标记用来控制参数显示使时的格式。
    语法格式:{参数序号:格式控制标记}
    在这里插入图片描述
    用于显示格式的规范:填充、对齐、宽度
  • 宽度:指当前槽的设定输出字符宽度,如果实际值比宽度设定的值的大,则使用实际长度,实际宽度小于指定宽度,则按照指定方式在宽度内对齐,默认左对齐以空格字符串填充
  • 对齐:默认是左对齐
  • 填充:默认是空格字符串填充,填充字符只能有一个
#设置宽度
a="{0:20}".format("计算机二级Python复习")
#设置对齐方式
b="{0:^20}".format("计算机二级Python复习")
#设置填充,符号为-
c="{0:-^20}".format("计算机二级Python复习")
print("a的宽度为",len(a))
print(b)
print(c)
运行结果:
a的宽度为 20
   计算机二级Python复习    
---计算机二级Python复习----

用于对数值本身的规范:,、.精度、类型

  • 逗号(,):用于显示数字类型的千位分隔符
  • .精度:由小数点(.)开头,对于浮点数,精度表示小数部分输出的有效位数,对于字符串,精度表示输出的最大长度。如果小数点保留长度超过应输出的长度,一应输出长度为准。
  • 类型:表示输出整数和浮点数类型的格式规则
    整数类型输出格式:
    b:输出整数的二进制方式
    c:输出整数对应的Unicode字符
    d:输出整数的十进制方式
    o:输出整数的八进制
    x:输出整数的小写十六进制方式
    X:输出整数的大写十六进制方式
    浮点数类型输出格式:
    e:输出浮点数对应的小写字母e的指数形式
    E:输出浮点数对应的大写字母E的指数形式
    f:输出浮点数的标准浮点形式
    %:输出浮点数的百分比形式
#设置千位分隔符
a="{0:,}".format(2234321)
#设置精度
b="{0:.3},{1:.4}".format("10.33332","计算机二级Python复习")
#设置整数类型格式
c="{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(666)
#设置浮点数类型格式
d="{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(333)
print(a)
print(b)
print(c)
print(d)
运行结果:
2,234,321
10.,计算机二
1010011010,ʚ,666,1232,29a,29A
3.33e+02,3.33E+02,333.00,33300.00%

(8)、字符串类型的操作

  • 字符串操作符

在这里插入图片描述

  • 字符串处理函数(内置函数)
    在这里插入图片描述
  • 字符串处理方法
    在这里插入图片描述

(9)、类型判断和类型间的转换

Python提供type(x)函数对变量x进行类型判断,适用于任何数据类型。

  • 隐式类型转换:

数值运算操作符可以隐式地转换输出结果的数据类型,例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。

  • 显示类型转换:

通过类型转换函数可以显示地在数字类型之间进行转换。
在这里插入图片描述
浮点数转换为整数类型时,小数部分会被舍弃掉(不使用四舍五入)。整数转换成浮点数类型时,会额外增加小数部分。其中int(x)如果x为“342.34”会报错。

(10)、课后习题

  • 选择题

1、以下是八进制数字的是()
A、0b998
B、0a1010
C、0o891
D、0x678
2、以下字符串合法的是()
A、”Java’Python’go”
B、”go’’Java”Python”
C、”go‘’
D、’Java’Python‘’
3、Python程序采用Unicode编码,英文字符和中文字符在Python种分别对应字符的个数是:()
A、1:1
B、1:2
C、2:1
D、2:2
4、以下不是Python内置函数类型的是()
A、char
B、int
C、float
D、list
5、Python支持复数类型,以下说法错误的是()
A、实部和虚部但是浮点数
B、表示复数的语法是real+imag j
C、1+1j是复数
D、虚部后缀j必须是小写形式
6、以下是print(“\nPython”)语句运行结果的是()
A、在新的一行输出:Python
B、直接输出:”\nPython”
C、直接输出:\nPython
D、先输出n,然后新的一行输出Python
7、字符串:s=’abcde’,n是字符串s的长度。索引字符串s字符’c’,哪个语句是正确的?
A、s[n/2]
B、s[(n+1)/2]
C、s[n//2]
D、s[(n+1)//2]
8、以下不是Python内置函数的是:()
A、int()
B、float()
C、len()
D、string()
9、以下能够根据逗号’,’分隔字符串的是:()
A、s.split()
B、s.strip()
C、s.center()
D、s.replace()
10、以下能够同时作用于所有数字类型和字符串类型的函数是:()
A、len()
B、complex()
C、type()
D、bin()
1C
2A
3A
4A
5D
6A
7C
8D
9A
10C

  • 编程题

1、 获得用户输入的一个整数,输出该整数百位及以上的数字。

"""
要求获得用户输入的一个整数,输出该整数百位及以上的数字。

"""
#方法1
num = input("请输入一个大于等于100的整数:")
if int(num)<100:
    print("请按要求输入!")
else:
    print(int(num[:-2]))


#方法2
num = eval(input("请输入一个整数:"))
if num < 100:
    print("请输入一个三位数的整数!")
else:
    num//=100
    print('百位及以上的数字位:{0}'.format(num))


2、 获得用户输入的一个字符串,将字符串按照空格分割,然后逐行打印出来。

"""
要求获得用户输入的一个字符串,将字符串按照空格分割,然后逐行打印出来。

"""
strin = input('请输入一段字符串,以空格分开:')
strin1 =strin.split(" ")#split()方法将会返回一个列表
for i in strin1:
    print(i)
    
print(strin1)

3、 程序读入一个表示星期几的数字(1-7),输出对应的是星期字符串。例如:输入3,返!“星期三”。

"""
要求:
程序读入一个表示星期几的数字(1-7),输出对应的是星期字符串。
例如:输入3,返!“星期三”。

"""
while True:
    num = eval(input("请输入1-7的数字:"))
    if 1<=num<=7:
        if num == 1:
            print("星期一")
        elif num == 2:
            print("星期二")
        elif num == 3:
            print("星期三")
        elif num == 4:
            print("星期四")
        elif num == 5:
            print("星期五")
        elif num == 6:
            print("星期六")
        else:
            print("星期天")
    else:
        print("请输入正确!")

4、 设n是一个任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。从键盘输入一个5位数,请编写程序判断这个数字是不是回文数。

"""

设n是一个任意自然数,如果n的各位数字反向排列所得自然数与n相等,则n被称为回文数。
从键盘输入一个5位数,请编写程序判断这个数字是不是回文数。

"""
def is_palindrome(num):
    # 将整数转换为字符串
    num_str = str(num)
    
    # 判断字符串是否与反转后的字符串相等
    if num_str == num_str[::-1]:
        return True
    else:
        return False

# 用户输入整数
num = int(input("请输入一个整数:"))

# 调用函数进行判断
if is_palindrome(num):
    print(f"{num} 是回文数")
else:
    print(f"{num} 不是回文数")

5、 输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串。

"""
输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串。

"""
num = eval(input("请输入一个十进制整数:"))
print(num,'的二进制数为:',bin(num))
print(num,'的八进制数为:',oct(num))
print(num,'的十六进制数为:',hex(num))
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值