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="">
<img src="">
<img src="">
</div>
<a href="" 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)