Python学习(十)之数字(Number)、字符串(String)

本文详细介绍了Python3中的数字类型,包括整型、浮点型和复数,涉及不同进制、数据类型转换、数字运算、数学函数、随机数和三角函数等内容。在字符串部分,讨论了字符串的访问、运算符、转义字符、格式化和内建函数等,并给出了多个练习案例,帮助读者巩固理解。

一、Python3 数字

Python数字数据类型用于存储数值,数据类型是不允许改变的,这就意味着如果改变数字的数据类型的值,将重新分配内存空间。

Python3 支持三种不同的数值类型:

  • 整型(int):通常被称为整型或整数,是正或负整数,不带小数点。Python3整型是没有限制大小的,可以当做Long类型使用。
  • 浮点型(float):浮点型由整数部分和小数部分组成,浮点型也可以使用科学计数法(2.5e2=2.5 x 10^2 = 250)
  • 复数 (complex):复数由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

1、整型的不同进制

进制表示方法转换到某进制
2进制0b10bin()
8进制0o10oct()
10进制10int()
16进制0x10hex()
>>> bin(20)
'0b10100'
>>> int(20)
20
>>> oct(20)
'0o24'
>>> hex(20)
'0x14'

在这里插入图片描述

2、数据类型的转换

我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

函数作用
int(x)将x转换为一个整数
float(x)将x转换到一个浮点数
complex(x)将x转换到一个复数,实数部分为 x,虚数部分为 0
complex(x, y)将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式
>>> a = 1.1
>>> int(a)
1
>>> a = 1.0
>>> int(a)
1
>>> b = 1
>>> float(b)
1.0
>>> b = 1.123
>>> c = 20
>>> complex(c)
(20+0j)
>>> complex(c,b)
(20+1.123j)

3、数字运算

在解释器里输入一个表达式,它将输出表达式的值。

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 总是返回一个浮点数
1.6
>>> 17 / 3  # 整数除法返回浮点型
5.666666666666667
>>>
>>> 17 // 3  # 整数除法返回向下取整后的结果
5
>>> 17 % 3  # %操作符返回除法的余数
2
>>> 5 * 3 + 2 
17
>>> 5 ** 2  # 5 的平方
25
>>> 2 ** 7  # 2的7次方
128

// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0
>>> 

不同类型的数混合运算时会将整数转换为浮点数

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

在交互模式中,最后被输出的表达式结果被赋值给变量 _( _ 变量应被用户视为只读变量)

>>> num1 = 9 ** 2
>>> num2 = 1000
>>> num1 * num2
81000
>>> num1 + _
81081
>>> _ * 100
8108100

4、数学函数

5、随机数函数

在这里插入图片描述

6、三角函数

在这里插入图片描述

7、数字常量

在这里插入图片描述

二、Python3 字符串

字符串是Python中最受欢迎、最常用的数据类型。可以通过用单双引号括起字符来创建他们。

在这里插入图片描述

1、对字符串的访问

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

  • 单字符类型:C或者类似语言的Char类型,char是容纳单字符的一种基本数据类型,不能存储汉字,(一个汉字占2字节)。

(1)拿出最后一个字符

s = 'abcdef'

print ("s[5]: ", s[5])
print ("s[-1]: ", s[-1])
------
s[0]:  f
s[-1]:  f

(2)设置步长提取字符 s[start:stop:step] 从satrt开始到stop结束、步长为step

  • 从下面例子,我们可以看出,步长为3,则跳过两个字符;步长为2,则跳过1个字符
s = 'abcdef'
print ("s[1:4]: ", s[1:4])
print ("s[0:4:3]: ", s[0:4:3])
print ("s[0:4:2]: ", s[0:4:2])
——————————
s[1:4]:  bcd
s[0:4:3]:  ad
s[0:4:2]:  ac
d = 'abcdefghijklm'
print ("d[0:4:2]: ", d[::2])
----------------
d[0:4:2]:  acegikm

(3)显示所有的字符
在这里插入图片描述

(4)显示前3个字符

在这里插入图片描述
(5)字符串的反转
在这里插入图片描述
(6)除了第一个字符之外的其他全部字符

在这里插入图片描述

2、字符串运算符

在这里插入图片描述
(1)重复

print(s * 2)
-----
abcdefabcdef

(2)连接

s = 'abcdef'
d = 'abcdefghijklm'
print( s + d)
————————————
abcdefabcdefghijklm

(3)成员操作符

print( 'a' in s)

(4)for循环遍历
在这里插入图片描述

(5)更新字符串

在这里插入图片描述

3、转义字符

在这里插入图片描述

(1)\t,表示横向制表符,\v,纵向制表符

>>> print("a\tb\tc")
a	b	c

(2)\a:响铃,如下内容,执行时系统会有提示音

>>> print("x\ay")
xy

(3)\b:退格,也就是删除键

>>> print("xy\bz")
xz

(4)\r,表示回车
在这里插入图片描述

4、字符串格式化

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
我叫 小明 今年 10 岁!

5、f-string

f-stringpython3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

#以前的
>>> name = 'Runoob'
>>> 'Hello %s' % name
'Hello Runoob' 

#f-string
>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量

>>> f'{1+2}'         # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'

Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

>>> x = 1
>>> print(f'{x+1}')   # Python 3.6
2

>>> x = 1
>>> print(f'{x+1=}')   # Python 3.8
'x+1=2'

6、字符串内建函数

(1)判断

在这里插入图片描述

(2)判断开头结尾
在这里插入图片描述
(3)判断元素

 [[:digit:]]  数字
 [[:alpha:]] 字母
 [[:alnum:]] 字母和数字
 

在这里插入图片描述

>>> print('wertyui12345'.isdigit())
False
>>> print('wertyui12345'.isalnum())
True
>>> print('wertyui12345'.isalpha())
False

(4)转化
在这里插入图片描述

(5)去除

在这里插入图片描述

在这里插入图片描述
(6)对齐
在这里插入图片描述

(7)替换
在这里插入图片描述

False
>>> s = 'hello world hello'
>>> s
'hello world hello'
>>> print(s.find('hello'))
0
>>> print(s.find('world'))
6
>>> print(s.replace('world','ranran'))
hello ranran hello
>>>

(8)统计

在这里插入图片描述
在这里插入图片描述
(9)分离和连接
在这里插入图片描述

>>> s = '172.25.2.250'
>>> s1 = s.split('.')
>>> s1
['172', '25', '2', '250']
>>> print(s[::-1])
052.2.52.271
>>> print(''.join(s1))
172252250
>>> print('  '.join(s1))
172  25  2  250
>>> print(' '.join(s1[::-1]))
250 2 25 172

更多字符串常用函数

三、练习

1 、变量名是否合法

在这里插入图片描述

法一:

Name = str(input('请输入变量名:'))
if Name == 'exit':
    print('exit')
    exit()

if Name[0].isdigit() or Name[0] != '_':
    print('变量名格式不正确!!!')
    exit()
else:
    for i in Name[1:]:
      if not (i.isalnum() or i == '_'):
          print('变量名格式不正确!!!')
          exit()
    else:
          print('变量名格式正确')

输出:

请输入变量名:_RANRAN
变量名格式正确

2、 输入 hello xiao mi 输出 mi xiao hello

在这里插入图片描述

Input = str((input(''))).split(' ')
print(' '.join(Input[::-1]))
——————————
hello xiao mi
mi xiao hello

在这里插入图片描述

3、 随机出题练习10内加减

在这里插入图片描述

i在这里插入图片描述

4、算术能力测试系统

在这里插入图片描述

import random
AllCount = 0
RightCount = 0

for i in range(0,10):
    StuAction = int(input('请选择做题(1)/退出(2):'))
    num1 = random.randint(1, 100)
    num2 = random.randint(1, 100)
    if StuAction == 1:
        met = random.randint(1, 4)
        if met == 1:
            AllCount += 1
            i += 1
            sum = num1 + num2
            #print(sum)
            print('%d+%d=?' %(num1,num2))
            SutAnswer = int(input('请输入答案:'))
            if SutAnswer == sum:
                print('回答正确')
                RightCount += 1
            else:
                print('回答错误')
        if met == 2:
            AllCount += 1
            i += 1
            sum = num1 - num2
            #print(sum)
            print('%d-%d=?' %(num1,num2))
            SutAnswer = int(input('请输入答案:'))
            if SutAnswer == sum:
                print('回答正确')
                RightCount += 1
            else:
                print('回答错误')
        if met == 3:
            AllCount += 1
            #print(AllCount)
            i += 1
            sum = num1 * num2
            #print(sum)
            print('%d*%d=?' %(num1,num2))
            SutAnswer = int(input('请输入答案:'))
            if SutAnswer == sum:
                print('回答正确')
                RightCount += 1
            else:
                print('回答错误')
        if met == 4:
            AllCount += 1
            #print(AllCount)
            i += 1
            sum = num1 / num2
            print(round(sum,2))
            print('%d/%d=?' %(num1,num2))
            SutAnswer = float(input('请输入精确到小数点后两位的答案:'))
            if SutAnswer == round(sum,2):
                print('回答正确')
                RightCount += 1
            else:
                print('回答错误')
    else:
        print('exit')
        exit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值