Python -- 字符串习题---判断数字并打印

用户输入一个十进制正整数数字

  1. 判断是几位数
  2. 打印每一位数字及其重复的次数
  3. 依次打印每一位数字,顺序个、十、百、千、万…位
strnum = input("please input a number:")
purenum =strnum.strip().lstrip("0")
print(pureNum, len(pureNum))

解析:

strip()

用于移除字符串头尾指定的字符(默认为空格)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
语法:str.strip([chars])
参数:chars – 移除字符串头尾指定的字符序列
例:

a="aabdab1234acdaba"
print(a.strip("abcd"))
print(a.strip("acbd"))
print(a.strip("dbac"))

输出:
1111
1111
1111

删除指定的的字符不管输入的顺序,只要出现了都将其删除

lstrip()

用于移除字符串**“头”**指定的字符(默认为空格)或字符序列。

rstrip()

用于移除字符串“尾”指定的字符(默认为空格)或字符序列。

len()

Len():得到字符串的长度
语法: Len (string)
参数string:string类型变量返回值Long。函数执行成功时返回字符串的长度,发生错误时返回-1。如果任何参数的值为NULL,则Len()函数返回NULL。

第二问:打印每一位数字及其重复的次数

倒序打印1

for i in range(len(num), 0, -1):
    print(num[i-1], end=' ')
print()

倒序打印2

for i in reversed(num):
    print(i, end=' ')
print()

倒序打印3 负索引

for i in range(len(num)):
    print(num[-i-1], end=' ')
print()
for i in range(-1, -len(num)-1, -1):
    print(num[i], end=' ')
print()
print('-' * 30)

print(num[::-1])

判断0-9的数字在字符串中出现的次数

1 每一次迭代都是用count,都是O(n)问题

counter = [0] * 10
for i in range(10): # 10 * n
    counter[i] = num.count(str(i))
    if counter[i]:
        print("The count of {} is {}".format(i, counter[i]))

2 使用count,迭代字符串本身
counter = [0] * 10
unique(n) * n
1111 时间复杂度就是O(n)
1234 时间复杂度就是O(4n)

for x in num:
    i = int(x)
    if counter[i] == 0:
        counter[i] = num.count(x)
        print("The count of {} is {}".format(i, counter[i]))

3 迭代自身每一个字符

for x in num: # O(n)
    i = int(x)
    counter[i] += 1

for i in range(len(counter)):
    if counter[i]:
        print("The count of {} is {}".format(i, counter[i]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值