# 1、编写程序,完成以下要求:
# 统计字符串中,各个字符的个数
# 比如:"hello world"
# 字符串统计的结果为: h: 1
# e: 1
# l: 3
# o: 2
# d: 1
# r: 1
# w: 1
#方法1:字典
a = "hello world"
b = {}
for c in a:
if c in b:
b[c]+=1
else:
b[c] = 1
print(b)
#方法2:标记
words = "hello world"
flag = 0
for w in words:
if words.count(w,flag) == words.count(w):
print(w,words.count(w,flag))
flag+=1
#方法3:系统函数法
a = "hello world 123;.>~12"
shuzi = 0
zimu = 0
kongge = 0
other = 0
for i in a:
if i.isdigit():
shuzi+=1
elif i.isalpha():
zimu+=1
elif i.isspace():
kongge+=1
else:
other += 1
print("数字:%d个,字母:%d个,空格:%d个,其他:%d个"%(shuzi,zimu,kongge,other))
#2、 随机生成一个六位数的验证码(包含数字和字符)
import random
code = ""
for i in range(6):
if i == random.randint(0,5):
print(random.randint(0,9),end="")
else:
code += random.choice("zxcvbnmasdfghjklqwertyuiop1234567890QWERTYUIOPASDFGHJKLZXCVBNM")
print(code)
# 3、使用while或者for,完成以下图形的输出
# *
# * *
# * * *
# * * * *
# * * * * *
# * * * *
# * * *
# * *
# *
for i in range(0,5):
for j in range(0,i + 1):
print("*",end=" ")
print()
for i in range(4,0,-1):
for j in range(i):
print("*",end=" ")
print()
# 4、键盘录入3个数字,编写代码实现对三个整数进行排序,输出时按照从小到大的顺序输出。
list01 = []
for i in range(3):
num = int(input("请输入第%d个数字:" %(i+1)))
list01.append(num)
list01.sort()
print(list01)
# 5、输入一个三位数,编写代码实现判断这个数是否是水仙花数。水仙花数的条件:三位数为abc,则满足:a的立方+b的立方+c的立方=abc
num = int(input("请输入一个三位数:"))
a = num // 100
b = num// 10 % 10
c = num % 10
if a**3 + b**3 + c**3 == num:
print("yes")
else:
print("no")
# 6、输入一个四位数,编写代码实现统计出此整数里面包含多少个偶数,多少个奇数
num = input("输入一个四位数:")
i = 0
j = 0
for a in num:
k = int(a)
if k % 2 == 0:
i+=1
else:
j+=1
print("偶数有%d个"%i)
print("奇数有%d个"%j)
# 07.实现双色球的彩票功能。规则:从36个红球中随机选择不重复的6个数,从15个篮球中随机选择1个组成一注彩票,可以选择买多注。
import random
boal = int(input("请输入买的注数:"))
for i in range(boal):
list00 = [k for k in range(0,34)]
dict00 = {}
listRed = []
listBlue = []
for j in range(6):
boalRed = random.choice(list00)
listRed.append(boalRed)
listRed.sort()
list01 = [p for p in range(0,16)]
boalBlue = random.choice(list01)
listBlue.append(boalBlue)
keyRed = "红球"
keyBlue = "蓝球"
valRed = listRed
valBlue = listBlue
dict00[keyRed] = valRed
dict00[keyBlue] = valBlue
print(dict00)
# 8、随机产生一个1-100之间的整数,看能几次猜中。要求:猜的次数不能超过7次,每次猜完之后都要提示“大了”或者“小了”。
import random
k = 0
while True:
for i in range(0,1):
j = random.randint(1,100)
guess = int(input("猜数:"))
if 0 < guess < j:
print("小了")
elif 100 > guess > j:
print("大了")
elif guess == j:
print("猜对了")
else:
print("请输入有效数字")
break
print(j)
k += 1
if k == 7:
print("你的猜数次数超过了7次,挑战失败")
break
#9、
# A.求出1/3+3/5+5/7+7/9+...+97/99结果
import math
sum = 0
for i in range(1,100,2): #1/3 3/5 所以定义了跨步为2,即1,3,5,7循环
sum += i/(i+2) #1/1+2
print(sum)
# B.求出1-1/2+1/3-1/4…..1/100的结果
sum = 0
for i in range(1,101):
i = i*pow(-1,i-1) #利用-1的次方来决定i的正与负,第一次i=0的时候,i=i*(-1)的零次方,i=1
sum += 1/i
print(sum)
# C.求出1-3+5-7+9-11+13...101的结果
sum = 0
k = 0
for i in range(1,102,2):
i = i*pow(-1,k) #同上,控制数字的正负
k += 1
sum += i
print(sum)
# 10、打印出杨辉三角形
# *
# * *
# * * *
# * * * *
# * * * * *
# * * * * * *
# * * * * * * *
# * * * * * * * *
# * * * * * * * * *
# * * * * * * * * * *
for i in range(10):
for j in range(0,10-i):
print(end=" ")
for k in range(10-i,10):
print("*",end=" ")
print("")