用python编写 编写函数digit(n, k),能够分离出整数n从右边数第k位上的数字。 要求k具有默认值1,n具有默认值0 例如digit(31589, 2),应该得到8 digit(31, 4),则应该得到0 digit()得到0
时间: 2024-05-14 21:15:07 浏览: 17
```python
def digit(n=0, k=1):
"""
分离出整数n从右边数第k位上的数字
:param n: 整数n,默认为0
:param k: 从右边数第k位,默认为1
:return: 返回分离出的数字,如果k超出n的位数则返回0
"""
if k <= 0 or n == 0:
return 0
else:
return n % 10**(k) // 10**(k-1)
print(digit(31589, 2)) # 输出 8
print(digit(31, 4)) # 输出 0
print(digit()) # 输出 0
```
说明:
- `n % 10**(k)` 取出n从右边数第k位及右侧的所有数字
- `// 10**(k-1)` 再将上一步的结果向右移动k-1位,即将从右边数第k位及右侧的所有数字右移k-1位,这样就得到了从右边数第k位上的数字。
相关问题
编写函数digit(num,k)返回整数bum中第k位数字的值要求用切片
以下是实现该函数的代码:
```python
def digit(num, k):
num_str = str(num)
return int(num_str[k-1:k])
```
该函数将整数`num`转换为字符串,然后使用切片操作获取该字符串中第`k`位数字的子串,并将其转换为整数返回。需要注意的是,由于切片操作是左闭右开区间,因此我们需要使用`k-1`作为起始索引。
用python定义一个函数,它返回整数n从右边开始数的第k个数字
好的,这是一个函数,它接受两个参数:整数n和数字k。它将返回整数n从右边开始数的第k个数字。
```python
def get_kth_digit(n, k):
str_n = str(n)
return int(str_n[-k])
```
这个函数的思路是先将整数n转换为字符串,然后取出从右边开始的第k个字符(即第k个数字),最后将其转换为整数返回。