设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 21771|回复: 44
打印 上一主题 下一主题

新人報到

[复制链接]

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2016-1-17 12:07:22 |只看该作者 |倒序浏览
本帖最后由 manhong2112 于 2016-1-17 12:08 编辑

在這裡把寫過的程式記錄下來,順便把那些題目做完,差不多就是這樣吧!

第一個程式當然少不了Hello World啦
  1. print("Hello World!")
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2016-1-17 12:25:50 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 13:52 编辑

第二題,兩數相加
  1. a = int(input()) #讀取輸入
  2. b = int(input()) #讀取輸入
  3. print(a+b) #print出a + b
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2016-1-17 12:27:19 |只看该作者
第三題,輸出1到100
  1. for i in range(1,101):
  2.   print(i)
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2016-1-17 12:29:37 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 13:53 编辑

第四題,1至100的和
  1. a = 0
  2. for i in range(1,101):
  3.   a += i # 將目前的數加至總數
  4. print(a)
复制代码
  1. print((1+100)*100/2) # 公式解
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

5#
发表于 2016-1-17 12:32:55 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 13:56 编辑

第5題,等比數列
  1. a = int(input())
  2. b = 1
  3. for i in range(1, 11):
  4.     print(b)
  5.     b *= a
复制代码
  1. from math import pow #導入次方函數
  2. a = int(input())
  3. for i in range(0, 10):
  4.     print(pow(a, i)) #調用函數, a^i
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

6#
发表于 2016-1-17 12:50:31 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 14:05 编辑

第6題,斐波納契數列
  1. j = int(input())
  2. x, y = 1, 0 # 元組賦值,相等於 x = 1,y = 0

  3. for i in range(1, j + 1):
  4.     x, y = y, x + y # 同樣是元組賦值,相等於 x = y,y = x + y
  5.     print(y)
复制代码
  1. j = int(input())
  2. def f1(n): # 定義函數
  3.     if n <= 2:
  4.         return 1
  5.     return f1(n - 1) + f1(n - 2) # 調用自己,遞迴(遞歸)
  6. # f1(5)
  7. # f1(4) + f1(3)
  8. # (f1(3) + f1(2)) + (f1(2) + f1(1))
  9. # (f1(2) + f1(1) + 1)) + (1 + 1)
  10. # (1 + 1 + 1) + (1 + 1)
  11. # 5

  12. for i in range(1, j + 1):
  13.     print(f1(i)) # 印出 1 ~ j 的數
复制代码
  1. j = int(input())
  2. f = (lambda n: 1 if n <= 2 else f(n-1) + f(n-2))  # 同樣是遞迴(遞歸),不過用lambda
  3. for i in range(1, j + 1):
  4.     print(f(i))
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

7#
发表于 2016-1-17 12:52:28 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 14:06 编辑

第7題,三角形
  1. i = int(input())
  2. for j in range(1, i + 1):
  3.     print(" " * (i - j) + "* " * j) # " " * ( i - j) 是 i - j 個" ","* " * j 就是j個 "* "
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

8#
发表于 2016-1-17 12:59:32 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 14:13 编辑

第八題,1~9乘法表
  1. for i in range(1, 10): # 印出 i 由1~9 的 (j 由1~9的 i * j)
  2.     for j in range(1, 10): # 印出 j 由1~9的 i * j
  3.         print(i, "*", j, '=', i * j) # 印出 i * j = i * j的答案
复制代码
附加,方形乘法表
  1. print(end="\t")
  2. # 印出橫向 1 - 10,裝飾用
  3. for i in range(1, 10):
  4.     print(i, end="\t")
  5. print()
  6. # 印9次9格乘法表
  7. for i in range(1, 10):
  8.     print(i, end="\t")
  9.     # 印橫向9格乘法表
  10.     for j in range(1, 10):
  11.         print(i * j, end="\t")
  12.     print()
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

9#
发表于 2016-1-17 13:08:04 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 14:22 编辑

第9題,求最大值
  1. j = 0 # 儲存目前最大的數值
  2. a = int(input()) # 第1次輸入,第1個數值
  3. if a > j:
  4.     j = a # 若 a 比 j 大,將最大的數值改為a
  5. a = int(input())# 第2次輸入,第2個數值
  6. if a > j:
  7.     j = a #同上
  8. a = int(input())# 第3次輸入,第3個數值
  9. if a > j:
  10.     j = a #同上
  11. print(j)
复制代码
  1. j = 0
  2. for i in range(0, 3): # 將3次輸入合併
  3.     k = int(input())
  4.     j = k if k > j else j
  5. print(j)
复制代码
  1. j = 0
  2. f = (lambda x, y: x if x > y else y) #用lambda + 三目運算式 (python中還是這樣叫嗎?) 判斷,若 x 比 y 大,返回 x 否則
  3. for i in range(0, 3):
  4.     k = int(input())
  5.     j = f(j,k) # 向lambda傳入參數
  6. print(j)
复制代码
  1. def f2(*x): #全塞在一起,沒甚麼解釋的,if 'y' in locals()判斷y有沒有宣告
  2.     for i in x: y = y if (y if 'y' in locals() else 0) > i else i
  3.     return y
  4. print(f2(int(input()), int(input()), int(input())))
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

10#
发表于 2016-1-17 13:42:01 |只看该作者
本帖最后由 manhong2112 于 2016-1-17 14:30 编辑

第10題,1000以內被3,5,7除餘數皆為2
  1. for i in range(1, 1001): #1 ~ 1000 的迴圈
  2.     if i % 3 == 2: #判斷 i / 3是否餘2
  3.         if i % 5 == 2:  #判斷 i / 5是否餘2
  4.             if i % 7 == 2:  #判斷 i / 7是否餘2
  5.                 print(i)
复制代码
  1. for i in range(1, 1001): print("", end=str(i) + "\n" if i % 3 == 2 and i % 5 == 2 and i % 7 == 2 else "")
  2. #三目運算式+邏輯運算符,若i % 3 == 2,i % 5 == 2,i % 7 == 2 旨成立,返回 i,否則返回空白,再輸出 i 或空白
复制代码
  1. print('\n'.join(str(i) for i in range(1, 1001) if i % 3 == 2 and i % 5 == 2 and i % 7 == 2))
  2. # 三目運算式+邏輯運算符+列表生成式,生成1~1000的數字,將符合判斷式的數字 (為了讓join肯動,要轉成字串) 加入列表,再由join將列表轉換成字串
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-22 17:24 , Processed in 0.015102 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部