Python练习(1)

Python练习(1)

1、从键盘上获取用户输入,然后按照字符逆序输出数据

x = input("输入一串字符:")
print(x[::-1])#使用切片操作将字符串直接逆序输出

2、从键盘上输入数据,然后把其中前5个字符,替换成hello,把前五个字符,添加到字符串结尾处

a = input("请输入:")
b = "hello"
c = a[0:5]
d = a.replace(c,b,1)
print(d + c)

3、从键盘上,统计第三个最高的字符出现次数

a = input("请输入:")
dict_list = {}
l1 = []
#利用字典算出输入的字符串中每个字符出现的次数
for i in a:
    if i not in dict_list:
        dict_list[i] = 1
    else:
        dict_list[i] += 1
for j in dict_list.values():
    l1.append(j)
print(l1)
#按字符出现次数从大到小的顺序进行排序
for k in range(len(l1)):
    for h in range(len(l1) - 1):
        if l1[h] < l1[h + 1]:
            l1[h], l1[h + 1] = l1[h + 1], l1[h]
print(l1)
#输出第三个字符
print("第三个最高的字符出现次数为" + str(l1[2]) + "次")

4、用户输入多个字符,如果包含某个字符,就使积分+100,如果输入包含某个字符,那么就-50,如果是数字,就+10,如果是除了数字字母下划线之外的,-30,如果积分少-1000,强行终止,如果大于114514,那么就把积分*1024输出

a = input("请输入:")
b = input("积分加100的字符:")
c = input("积分减50的字符:")
sum = 0
for i in a:
    l = re.findall(b, i)
    if len(l) > 0:
        sum = sum + 100

    l = re.findall(c, i)
    if len(l) > 0:
        sum = sum - 50

    l = re.findall('\d', i)
    if len(l) > 0:
        sum = sum + 10

    l = re.findall('\w', i)
    if len(l) > 0:
        sum = sum - 30

    if sum < -1000:
        break

    if sum > 114514:
        sum = sum * 1024
        print(sum)
        
print('---------------------')
print(sum)

5、编写邮箱的正则表达式

import re
test = input("输入一个邮箱地址:")
if re.match(r'^.{1,19}@.{1,19}\..{1,19}',test):
    print("您输入的邮箱正确!")
else:
    print("错误的邮箱地址")
    

6、身份证的正则表达式

import re
ID = input("请输入身份证号:")
ID_num = re.compile('^\d{17}[0-9,x,X]{1}$')
result = ID_num.search(ID)
if result != None:
    print("身份证号正确!")
else:
    print("身份证号错误!")

7、手机号的正则表达式

import re
phone_num = input('请输入一个手机号:')
phone_rule = re.compile('1[3|4|5|7|8]{1}\d{9}$')
result = phone_rule.search(phone_num)
if result != None:
    print('这是一个手机号')
else:
    print('这不是一个手机号')

8、提取某个网页的 所有img的src的地址,只要地址

#这里自己写的比较呆,需要手动复制网页源代码
string = """
<div class="carousel-inner" role="listbox" data-report-view='{"mod":"popu_465","strategy":""}'>
<img src="https://csdnimg.cn/feed/20200615/1ad5cfed748bd3ede752e91847d2e4a9.png">
<img src="https://csdnimg.cn/feed/20200615/08af275978433d233dc948c96038d003.png">
<img src="https://csdnimg.cn/feed/20200615/ba19765b9486a58254402ea96601ae73.png">
		</div>
<a href="https://blog.csdn.net/FL63Zv9Zou86950w/article/details/106740460" target="_blank" style="display:block;">
				<div class='cover'></div>
		</div>
"""
import re
a = 'img src="(.*?)"'
l = re.findall(a,string)
for i in l:
    print(i)

9、输出一个锤子图形,可以N控制锤子的大小

#思想差不多是生成两个矩形组成锤子的形状,这里做成的锤子比较简单
N = int(input("输入N:"))
if N / 2 != 0:
    for i in range(N):
        print("* " * N)
    for j in range(N):
        print(" " * int(N/2) + "* " * int((1+N)/2))
else:
    for i in range(N):
        print("* " * N)
    for j in range(N):
        print(" " * int((N / 2) + 1) + "* " * int((N / 2)))

10、吉良吉影学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案

* * * 
* *  
*   
* *  
* * * 
#我这里生成”K“图形的思想是用了两个循环,第一个循环做上半部分,第二个循环做下半部分
N = int(input("请输入N:"))
for i in range(N):
    print("* " * (N - i))
for j in range(2, N + 1):
    print("* " * j)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值