1.バブルアルゴリズム
方法 1:
num = [1, 5, 10, 58, 12, 2]
for i in range(len(num)-1):# 比较n-1轮,n为元素个数
for j in range(len(num)-1-i):# 剩余两两进行比较的次数
if num[j] < num[j + 1]:
num[j + 1], num[j] = num[j], num[j + 1]
print(num) #打印结果为:[58, 12, 10, 5, 2, 1]
方法 2:
list1 = [2, 6, 9, 10, 18, 15, 1]
a =len(list1) # 统计列表元素的长度:len()函数(统计)
print(a) # 列表的长度为7
for i in range(a): # 那么a的取值为:0123456 #控制循环的次数
for j in range(i+1,a): # 当i=0时 j=1.2.3.4.5.6
if list1[i]>list1[j]: # 如从大到小只需要将大于号改为小于号
#list1[]=list1[j] 调试,满足条件就替换
list1[i],list1[j]=list1[j],list1[i]
# 双向赋值语法,两者替换,无先后循序同时取值,把i的值赋值给j,
print(list1)#调试解释用的
print(list1) # 运行结果:[1, 2, 6, 9, 10, 15,18]
2.九九九九を印刷する
方法 1:
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(i,j,i*j),end=' ') #使用format格式化输出
print()
方法 2:
for i in range(1,10): # 用来控制循环次数,外循环 i的结果循环次数为:1-9
for j in range(1,i+1): # 内循环 j=1 内循环循环完毕后才会回到外
循环
print(j,'*',i,'=',j*i,'\t',end='') # \t 转义字符:表示空格 \n :表示换行
print('\n')
# 解析
当i = 1 j = 1 1 * 1 = 1
当1 = 2 j = 1,2 1x2=2 2x2=4
3. ヤン・ホイ・トライアングル**
マッサージ = '''
陽輝の三角形は、基本的に、二項式 (a+b) の n 乗展開後の各項目の係数によって形成される三角形です。そのプロパティには、次のものが含まれます: 各行の端点の数は 1 であり、数値も 1 です; 各数値は、その左上と上辺の 2 つの数値の合計に等しくなります。
'''
n = eval(input("输入要打印的行数:"))
triangle = [[1], [1, 1]]
for i in range(2, n): # 已经给出前两行,求剩余行
pre = triangle[i-1] # 上一行
cul = [1] # 定义每行第一个元素
for j in range(i-1): # 算几次
cul.append(pre[j]+pre[j+1]) # 每个数字等于上一行的左右两个数字之和。
cul.append(1) # 添加每行最后一个元素
triangle.append(cul)
print("普通输出:{}".format(triangle))
for i in range(n): # 按等边三角形格式输出
s = " "*(n-i-1)
for j in triangle[i]:
s = s + str(j)+" "
print(s)
4.水仙
マッサージ = """
100 から 999 までのすべての「水仙の数字」を見つけます。いわゆる「水仙の数字」は 3 桁の数字を指し、各数字の 3 乗の合計は数字そのものに等しくなります。例:
153 は「水仙の数」、153 = 1^3 + 5^3 + 3^3 なので、153 は水仙の数「
」です。
l = []
for i in range(100,1000):
a = i // 100
b = (i%100) // 10
c = i % 10
if a**3 + b**3 + c**3 == i:
l.append(i)
for i in range(len(l)):
print(l[i],end = " ")
# 输出结果 153 370 371 407
5.ピラミッドパターン
「*」で構成されたピラミッドパターンを印刷します。
入力の説明:
入力の複数のセット、整数 (2 ~ 20)、ピラミッドの辺の長さ、つまり「*」の数を示し、出力行の数も示します。
出力の説明:
入力の各行について、"*" で構成されるピラミッドを出力します。各 "*" の後にはスペースが続きます。
def pypart(n):
myList = []
for i in range(1, n + 1):
myList.append("*" * i)
print("\n".join(myList))
# 驱动程序代码
n = 5
pypart(n)
6. ボフィナッチ数列
方法 1:
def fib(lenght):
a, b = 0, 1
n = 0
while n < lenght:
yield b
a,b = b,a+b
n += 1
gen = fib(9)
for i in gen:
print(i,end=' ')
方法 2:
def fun(n): # n = 9
list1 = []
for i in range(n): # i = 0-8
if i == 0 or i == 1:
list1.append(1) #当i=0或者1的时候往列表添加1,先确定前面的两个数位1
else:
list1.append(list1[i-2] + list1[i-1]) #[i-2]索引位是减两位的和减一位的相加得到的结果
print(list1)
fun(9)
7. シーケンス内の整数の重複排除
タイトル 説明
与えられた整数シーケンスから、繰り返される整数を削除し、重複排除されたシーケンスを小さいものから小さいものへと並べ替えて出力します。
入力の説明:
最初の行に整数 n を入力します。これは、シーケンスに n 個の整数があることを示します。
2 行目に n 個の整数 (各整数は 1 以上 1000 以下) を入力し、整数はスペースで区切ります。
出力の説明:
重複除去され、昇順に並べられた整数のシーケンス。整数はスペースで区切られています。
'''
n = int(input('请输入:'))
l = list(map(int,input('请输入一段整数:').split(' ')))
new_l = []
for i in range(len(l)):
if l[i] not in new_l:
new_l.append(l[i])
print(new_l)
8.デジタル直角三角形パターン
マッサージ = '''
数字で数字の三角形のパターンを出力します。
入力の説明:
入力の複数のセット、整数 (3 ~ 20)、デジタル三角形の辺の長さ、つまり数字の数を示し、出力ラインの数も示します。
出力の説明:
入力の各行に対して、対応する長さの数字で構成されるデジタル三角形を出力します。各数字の後にはスペースが入ります。
'''
while True:
try:
n = int(input("请输入3-20的数字:"))
for i in range(n):
for j in range(1,i+1):
print(j,end=' ')
print()
except:
break
"""
9. 1行のコードで1~100の合計を実現
print(sum([i for i in range(1,101)]))
10. 文字列を逆順に出力する
方法 1:
s = str(input("请输入一个需要排序字符串:")) # new_s = s[-1::-1] new_s = s[::-1] print(new_s)
方法 2:
str = list(input('input a string:')) str.reverse()#该方法没有返回值,若打印则出现None,但会对列表元素进行反向排序 print(''.join(str))
11. 1/1 + 1/3 + 1/5...+1/99の合計を求めます(1 /1 + 1 /3+5分岐1....)
i=1.0 # 定义变量i 赋予浮点值(用作控制循环的次数)
sum=0 # 定义一个求和的变量
while i <= 99: # while循环
sum = sum + 1/i # i为可变分子和分母必须要有一个为浮点数
i+=2
print(sum) # 结果为:2.93777484847
12.ループ ステートメントを使用して、2 ~ 10の整数のループ乗算の値を計算します ( 2X3X4X5....10)。
sum = 1 # 定义一个求和的变量
for i in range(2,11): # i变量值是用遍历range函数内的值来循环
sum = sum * i #这个地方不需要i=i+1,一般是结合while使用
print(sum) # 运行结果:3628800