文章目录
- (1)题目描述
- (2)Python3实现
- (3)知识点详解
- 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
- 1.1、input() 与 list(input()) 的区别、及其相互转换方法
- 2、print() :打印输出。
- 3、range() :输出指定范围内的所有值(前闭后开)。
- 3、整型int() :将指定进制(默认十进制)的一个字符串或数字转换为十进制整型(强转)。</font>
- 3.1、bin():十进制整数转换为二进制码。返回值为字符串。
- 3.2、ord(): ASCII字符转换为十进制整数(Unicode字符 —— Unicode数值)。
- 3.3、chr():将10进制或16进制数转换为ASCII字符。(Unicode数值 —— Unicode字符)。
- 4、字符串str() :将参数转换成字符串类型(强转)—— 字符串是有序不可变序列。
- 5、算术运算符
- 6、str.endswith():判断字符串中(可指定范围)是否以指定字符或子串结尾。返回bool值。
(1)题目描述
(2)Python3实现
while True:
try:
n = int(input())
num = 0
for i in range(n+1): # 包括n
b = str(i**2) # 平方,转字符串格式
if b.endswith(str(i)): # 检测是否以指定字符串结尾
num += 1
print(num)
except:
break
(3)知识点详解
1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
str1 = input()
print(str1)
print('提示语句:', str1)
print(type(str1))
'''
asd123!#
提示语句: asd123!#
<class 'str'>
'''
常用的强转类型 | 说明 |
---|---|
int(input()) | 强转为整型(输入必须时整型) |
list(input()) | 强转为列表(输入可以是任意类型) |
1.1、input() 与 list(input()) 的区别、及其相互转换方法
- 相同点:两个方法都可以进行for循环迭代提取字符,提取后都为字符串类型。
- 不同点:
str = list(input())
将输入字符串转换为list类型,可以进行相关操作。如:str.append()
- 将列表转换为字符串:
str_list = ['A', 'aA', 2.0, '', 1]
- 方法一:
print(''.join(str))
- 方法二:
print(''.join(map(str, str_list)))
备注:若list中包含数字,则不能直接转化成字符串,否则系统报错。
- 方法一:
print(''.join([str(ii) for ii in str_list]))
- 方法二:
print(''.join(map(str, str_list)))
map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
(1) 举例说明:若list中包含数字,则不能直接转化成字符串,否则系统报错。
str = ['25', 'd', 19, 10]
print(' '.join(str))
'''
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/test.py", line 188, in <module>
print(' '.join(str))
TypeError: sequence item 3: expected str instance, int found
'''
(2)举例说明:若list中包含数字,将list中的所有元素转换为字符串。
str_list = ['A', 'aA', 2.0, '', 1]
print(''.join(str(ii) for ii in str_list))
print(''.join([str(ii) for ii in str_list]))
print(''.join(map(str, str_list))) # map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
'''
AaA2.01
AaA2.01
AaA2.01
'''
2、print() :打印输出。
【Python】print()函数的用法
x, y = 1, 9
print('{},{}' .format(x, y)) # 打印方法一
print('*'*10) # 打印分割符
print(x, ',', y) # 打印方法二
'''
1,9
**********
1 , 9
'''
3、range() :输出指定范围内的所有值(前闭后开)。
函数说明:
range(start=0,stop,step=1)
输入参数:
- start:序列的起始点,默认值0。
- stop:序列的终止点。
- step:滑动步长,默认为1。正数表示迭代上升,负数表示迭代下降。
备注:前闭后开[A,B),即可以取到A值,但取不到B值。
# (1)指定stop=9, start默认为0,step默认为1
for i in range(9):
print('A =', i)
'''
A = 0
A = 1
A = 2
A = 3
A = 4
A = 5
A = 6
A = 7
A = 8
'''
# (2)指定start=2, stop=9, step默认为1
for i in range(2, 9):
print('B =', i)
'''
B = 2
B = 3
B = 4
B = 5
B = 6
B = 7
B = 8
'''
# (3)指定start=2, stop=9, step=-2
for i in range(9, 2, -2):
print('C =', i)
'''
C = 9
C = 7
C = 5
C = 3
'''
3、整型int() :将指定进制(默认十进制)的一个字符串或数字转换为十进制整型(强转)。
- Python2 有 long int 类型,而Python3 整型没有范围限制,故可以当作 long int 使用。
- 布尔类型 bool 是整型的子类型,包括两种:
True == 1、False == 0
。
函数说明:
int(x, base=10)
输入参数:
x
:字符串或数字(整数、浮点数)。base
:默认十进制
。
备注1:若带参数base,表示将 (二进制、十进制、十六进制)的 x 转换为十进制。
备注2:若带参数base,则输入必须是整数,且整数必须以字符串的形式进行输入。
输入 | 返回值 | 举例 | 输出 |
---|---|---|---|
int('整数', base=16) | 输入整数指定为16进制,转换为10进制整数(同理:其余进制) | print(int('20', 16)) 和 print(int('0XAA', 16)) | 32 和 170 |
(1)输入为空或整数 | \ | \ | \ |
int() | \ | print(int()) | 0 |
int(浮点数) | \ | print(int(-2.1)) | -2 |
(2)输入为字符串 | \ | \ | \ |
int(字符串) | \ | print(int('-2')) | -2 |
int(字符串(浮点数)) | 需先将str转换为float,再转换为int,否则报错。 | print(int(float('-2.1'))) | -2 |
十进制转换为16进制
十六进制范围:
0 ~ 65536(0000 ~ FFFF)
方法:
- (1)十进制数除16
(取余数1)
,得商1- (2)商1除16
(取余数2)
,得商2- (3)商2除16
(取余数3)
,得商3- (4)最后商3等于0
(取余数4)
。- 最终结果为倒序余数
= [余数4, 余数3, 余数2, 余数1]
。举例(整数:65036):
(1)65036 除 16,商4064,余数 12(十六进制C)
(2)4064 除 16,商254,余数 0(十六进制0)
(3)254 除 16,商15,余数 14(十六进制E)
(4)15除16,商0,余数 15(十六进制F)。
(5)结束:得16进制为 = FE0C
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
2进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
3.1、bin():十进制整数转换为二进制码。返回值为字符串。
函数说明:
bin(整型)
print(bin(-3))
print(type(bin(-3)))
'''
-0b11
<class 'str'>
'''
3.2、ord(): ASCII字符转换为十进制整数(Unicode字符 —— Unicode数值)。
函数说明:
ord(字符)
print(ord('A'))
print(type(ord('A')))
'''
65
<class 'int'>
'''
3.3、chr():将10进制或16进制数转换为ASCII字符。(Unicode数值 —— Unicode字符)。
函数说明:
chr(number)
print(chr(97))
print(type(chr(97)))
'''
a
<class 'str'>
'''
4、字符串str() :将参数转换成字符串类型(强转)—— 字符串是有序不可变序列。
函数说明:
str(x, base=10)
一般来说,有序序列类型都支持索引,切片,相加,相乘,成员操作。
print('返回空字符串:', str())
print('整数转换为字符串:', str(-23))
print('浮点数转换为字符串:', str(1.3e2))
print('列表转换为字符串:', str([12, '-23.1', 'Python']))
print('元组转换为字符串:', str((23, '9we', -8.5)))
print('字典转换为字符串:', str({'Huawei': 'China', 'Apple': 'USA'}))
print('集合转换为字符串:', str({'China', 'Japan', 'UK'}))
'''
返回空字符串:
整数转换为字符串: -23
浮点数转换为字符串: 130.0
列表转换为字符串: [12, '-23.1', 'Python']
元组转换为字符串: (23, '9we', -8.5)
字典转换为字符串: {'Huawei': 'China', 'Apple': 'USA'}
集合转换为字符串: {'China', 'UK', 'Japan'}
'''
5、算术运算符
序列 | 运算符 | 名称 | 说明 | 举例 | 结果 | 数据类型 |
---|---|---|---|---|---|---|
【1】 | + | 加 | (1)对于数字:求和。 | c = 1 + 2 | c = 3 | int型 |
【1】 | + | 加 | (2)对于序列类型(如:字符串):拼接操作 | str = 'a' + 'b' | str = 'ab' | 字符串型 |
2 | - | 减 | 求差值 | c = 1 - 2 | c = -1 | int型 |
【3】 | * | 乘 | (1)对于数字:求积。 | c = 2 * 3 | c = 6 | int型 |
【3】 | * | 乘 | (2)对于序列类型(如:字符串):重复操作 | str = 'a' * 3 | str = 'aaa' | 字符串型 |
4 | / | 除 | 求商(两个整数或浮点数相除,结果为float型) | c = 3 / 2 | c = 1.5 | 浮点型 |
5 | % | 取余 | 求余数 | c = 3 % 2 | c = 1 | int型 |
6 | ** | 幂 | 求次幂 | c = 3 ** 2 | c = 9 | int型 |
【7】 | // | 地板除法 | 向下取整。(1)两个整数相除,结果为int型 | c = 3 // 2 | c = 1 | int型 |
【7】 | // | 地板除法 | 向下取整。(2)除数或被除数为float类型,则结果为float类型。 | c = 3 // 2.0 | c = 1.0 | 浮点型 |
6、str.endswith():判断字符串中(可指定范围)是否以指定字符或子串结尾。返回bool值。
函数说明:
str.endswith(suffix, start, end)
输入参数:
- suffix:后缀。可以是字符、字符串、元组(常用于判断文件类型)。
- start:索引字符串的起始位置。默认0。
- end:索引字符串的结束位置。默认字符串的长度。
备注:空字符的情况。返回值通常为True。
str = "i love python"
print("1:",str.endswith("")) # 空字符
print("2:",str.endswith("n"))
print("3:",str.endswith("python"))
print("4:",str.endswith("n",0, 6)) # 索引 'i love' 是否以 'n' 结尾。
print("5:",str.endswith(("n","z"))) # 遍历元组,任意一个满足条件即返回True
print("6:",str.endswith(("k","m"))) # 遍历元组,任意一个满足条件即返回True
# 判断文件类型
file = "python.txt"
if file.endswith("txt"): # 字符串类型
print("该文件为文本。")
elif file.endswith(("AVI","WMV","RM")): # 元祖类型
print("该文件为视频。")
else:
print("文件格式未知。")
'''
1: True
2: True
3: True
4: False
5: True
6: False
该文件为文本。
'''