Python 習題練習
習題1: 輸出2000-2200之間的所有閏年
*使用while迴圈
year = 2000
while year <= 2200:
if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0) :
print('%d' %year ,end ='\t')
year += 1
*使用for in迴圈
for year in range(2000,2201):
if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0):
print( year , end = '\t')
習題2:輸入三個數,判斷是否能構成三角形,如果能,求其面積和周長
a = float(input('請輸入三角形的邊長a:'))
b = float(input('請輸入三角形的邊長b:'))
c = float(input('請輸入三角形的邊長c:'))
if (a + b)> c and (a + c) > b and (b + c)> a:
perimeter = a + b + c
p = perimeter/2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print('三角形的周長為:%.2f' %perimeter)
print('三角形的面積為:%.2f' %area)
else:
print('a,b,c三個數不能構成三角形')
習題3:輸出100-999之間的水仙花數
*使用while迴圈
import math
num = 100while num <= 999:
unit = num % 10
ten = num % 100 // 10
hundred = num // 100
if num == math.pow(unit,3) + math.pow(ten,3) + math.pow(hundred,3):
print('%d '%num)
num = num +1
*使用for in迴圈
import mathfor num in range(100 , 1000):
unit = num % 10
ten = num % 100 // 10
hundred = num // 100
if num == math.pow(unit,3) + math.pow(ten,3) + math.pow(hundred,3):
print('%d '%num)
習題4:計算1 - 1/2 + 1/3 - 1/4 + 1/5 -1/6 + ...... + 1/99 - 1/100
*使用while迴圈
num = 1sum_num = 0
sign = 1
while num <= 100:
factor = sign / number
sum_num = sum_num + factor
num += 1
sign = - sign
print('%.5f ' %sum_num)
*使用for in迴圈
sum_num = 0sign = 1
for number in range(1,101):
factor = sign / number
sign = - sign
sum_num += factor
print('%.5f' %sum_num)
習題5:人機猜拳,人和機器分別1000元錢,通過下注贏錢,當誰的錢輸光,遊戲停止
from random import randintmachine_money = 1000
person_money = 1000
counter = 0
while True:
machine = randint(1,3)
person = randint(1,3)
ante = int(input('請輸入賭注:'))
print(person)
print(machine)
counter += 1
if machine > person:
person_money = person_money - ante
machine_money = machine_money + ante
elif machine < person:
person_money = person_money + ante
machine_money = machine_money - ante
else:
person_money = person_money
machine_money = machine_money
print('平局,再來一次!')
print('我的餘額為:%d,電腦的餘額為:%d' %(person_money,machine_money))
if person_money == 0 or machine_money == 0:
print('我的餘額是%d ,電腦的餘額是%d ' %(person_money,machine_money))
print('勝負已定!')
break
print('人機大戰最終經過%d個回合分出勝負' %counter)
習題6:丟6000次骰子,統計它們出現的次數
from random import randintf1 = f2 = f3 = f4 = f5 = f6 = 0
for x in range (6000):
num = randint(1,6)
if num == 1:
f1 += 1
elif num == 2:
f2 += 1
elif num == 3:
f3 += 1
elif num == 4:
f4 += 1
elif num == 5:
f5 += 1
else:
f6 += 1
print('1總共出現%d 次' %f1)
print('2總共出現%d 次' %f2)
print('3總共出現%d 次' %f3)
print('4總共出現%d 次' %f4)
print('5總共出現%d 次' %f5)
print('6總共出現%d 次' %f6)
習題7:輸入一個數,判斷該數是不是素數
import mathnumber = int(input('請輸入一個不小於2的整數:'))
num = 2
kqrt = math.sqrt(number)
while num < kqrt:
if number % num == 0:
break
else:
num +=1
if num <= kqrt:
print('%d is not a prime' %number)
else:
print('%d is a prime' %number)
習題8:輸出200-300之間的素數
import mathfor num in range(200 , 301):
root = math.sqrt(num)
deno = 2
while deno <= root:
if num % deno == 0:
break
deno += 1
if deno > root:
print(num,end = ' ')
習題9:輸入2個正整數,求出這兩個數的的最大公約數以及最小公倍數
num1 = int(input('num1 = '))num2 = int(input('num2 = '))
min_num = min(num1 , num2)
for factor in range( min_num , 0 , -1 ):
if (num1 % factor == 0) and ( num2 % factor == 0):
print('最大公約數是%d' %factor)
print('最小公倍數是%d' %((num1 * num2) / factor))
break
習題10:現在有100元錢買雞,公雞5元/只,母雞3元/只,小雞1元3只,100元買100只雞, 問公雞/母雞/小雞各多少?
for x in range(21):
for y in range(34):
z =100 - x - y
if(z % 3 ==0) and (5*x + 3*y + z/3 ==100):
print(x,y,z)
習題11:找出10000以內的完美數
for number in range(1,10001):total = 0
for num in range(number,1,-1):
if number % num == 0:
factor = number / num
total += factor
if number == total:
print(number,end = '\t')
習題12:A、B、C、D、E五個人在某天夜裡合夥去捕魚,到第二天凌晨時都疲憊不堪,於是各自找地方睡覺。日上三杆,A第一個醒來,他將魚分為五份,把多餘的一條魚扔掉,拿走自己的一份。B第二個醒來,也將魚分為五份,把多餘的一條魚扔掉,保持走自己的一份。C、D、E依次醒來,也按同樣的方法拿走魚。問他們合夥至少捕了多少條魚?
counter = 1while True:
count = counter
for _ in range(4):
num = (count - 1) * 4 / 5
count = num
if (count - 1) % 5 == 0:
print(counter)
break
else:
counter += 1
fish = 1
while True:
total = fish
for num in range(6):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
break
if num == 5:
print(fish)
break
fish += 1
習題13:一個簡單的賭博遊戲,遊戲規則如下:玩家擲兩個骰子,點數為1到6,如果第一次點數和為7或11,則玩家勝, 如果點數和為2、3或12,則玩家輸,如果和 為其它點數,則記錄第一次的點數和,然後繼續擲骰,直至點數 和等於第一次擲出的點數和,則玩家勝,如果在這之前擲出了點數和為7,則玩家輸。
from random import randintnum1 = randint(1, 6)
num2 = randint(1, 6)
total = num1 + num2
print('第一個骰子的點數是%d' % num1)
print('第二個骰子的點數是%d' % num2)
if (total == 7) or (total == 11):
print('第一次丟出的骰子之和為7或11,玩家贏 , good luck !')
elif (total == 2) or (total == 3) or (total == 12):
print('第一次丟出的骰子之和為2或3或12,莊家贏 , game over !')
else :
temporary = total
print('2個骰子之和為:%d' %temporary)
count = 2
while True:
count = count
num1 = randint(1, 6)
num2 = randint(1, 6)
total = num1 + num2
print()
if temporary == total:
print('count = %d' %count)
print('第一個骰子的點數是%d' % num1)
print('第二個骰子的點數是%d' % num2)
print('玩家贏, good luck !')
break
elif total == 7:
print('count = %d' % count)
print('第一個骰子的點數是%d' % num1)
print('第二個骰子的點數是%d' % num2)
print('莊家贏 , game over !')
break
else:
print('第一個骰子的點數是%d' % num1)
print('第二個骰子的點數是%d' % num2)
print('平局,繼續!')
count += 1
習題14:編寫程式,使用者輸入一個三位以上的整數,輸出其前2位的數字。例如使用者輸入1234,則程式輸出12。
from math import pownumber = int(input('請輸入一個三位以上的整數:'))
digit = 2
while True:
digit += 1
if pow( 10 , digit) <= number < pow( 10 , digit + 1 ):
print('使用者輸入的是一個%d位數' %( digit + 1 ))
break
fact = (number // pow(10,(digit)))
print('%d'%fact)
相關推薦
Python 習題練習
習題1: 輸出2000-2200之間的所有閏年*使用while迴圈year = 2000while year <= 2200: if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0) :
python基礎習題練習
python基礎習題練習#encoding:utf-8 #1.實現用戶輸入用戶名和密碼,當用戶名為 seven 且 密碼為 123 時,顯示登陸成功,否則登陸失敗! name=input('name>>: ').strip() password=input('passwd&
笨辦法學python 習題42 加分練習
art 學python pup row die 另一個 ddd you true 3、創建一個新版本,裏邊使用兩個 class,其中一個是 Map ,另一個是 Engine 。提示: 把 play 放到 Engine 裏面。、 #coding=utf-8from sys i
基礎篇-python迴圈語句for,while習題練習
今天習題: 習題一: 1 用while語句的2種方法輸出數字:1到10 (1) x = 1 while x <= 10: print(x) x += 1 (2) word = [1,2,3,4,5,6,7,8,9,10]
Python小練習更改版(更改一部分代碼,與錯誤)
print items isdigit 對不起 pro 轉換成 efault adl confirm 之前上傳的發現有部分代碼錯誤,重新上傳; 更改了第一次的代碼與錯誤,增加了註釋與商店部分功能; 沒有每天堅持更新博客,與初衷相差甚遠,堅持!每天進步一點點!
python 習題
style range 三位數 usr 程序 條件 滿足 log clas 題目:有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少? 程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去 掉不滿足條件的排列。 #
python小練習--屬性
class 開頭 類方法 文字 沒有 __init__ 計算 div 技術分享 箭頭這個作業: 1 class Box:#定義一個類名為Box,類名後不必有括號,類包含類屬性和類方法,這個類沒有定義類屬性 2 ‘‘‘這是一個計算體積的類‘‘‘#這是這個類
python基礎練習-循環
成功 pan mil tro 1-1 使用 循環 font 練習 1、使用while循環輸出1 2 3 4 5 6 8 9 10 2、求1-100的所有數的和 3、輸出 1-100 內的所有奇數 或者 4、輸出 1-100 內的所有偶數 或者 5、求
python習題
子列 後退 刪除列 git 添加 break 移除 spl div #習題1 #a:實現用戶輸入用戶名和密碼,當用戶名為seven且密碼為123時,顯示登錄成功,否則登錄失敗! while 1: name = input(‘請輸入用戶名: ‘) psw =
python小練習①
spa 微信 logs draw .com odin height hub git 題目內容: 將你的 QQ 頭像(或者微博頭像)右上角加上紅色的數字,類似於微信未讀信息數量那種提示效果。 類似於圖中效果 #!usr/bin/env python #_*_coding:
python 小練習
判斷 [0 數字 for 任務 麻煩 保存 開車 完成 一個環形的公路上有n個加油站,編號為0,1,2,...n-1, 每個加油站加油都有一個上限,保存在列表limit中,即limit[i]為第i個加油站加油的上限, 而從第i個加油站開車開到第(i+1)%n個加油站需要co
python(練習實例)
ror tin 完全平方數 請問 mov utf pytho pro style Python 練習實例1 題目:有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少? 我的代碼:python 3+ #2017-7-20 list_h = [1
python爬蟲練習1:豆瓣電影TOP250
import ria fff python top font beautiful code pen 項目1:實現豆瓣電影TOP250標題爬取: 1 from urllib.request import urlopen 2 from bs4 import Beaut
Python小練習(1)
duyuheng python 比較價錢 找出一個月中的天數 計算三角的周長 點在矩形內嗎?金融方面:比較價錢假設你購買大米時發現它有兩種包裝。你會別寫一個程序比較這兩種包裝的價錢。程序提示用戶輸入每種包裝的重量和價錢,然後顯示價錢更好的那種包裝。下面是個示例運行#!/usr/bin/env pytho
python 小練習 10
oot 每次 += ret 字母 val pre 字母表 bsp 給你一個十進制數a,將它轉換成b進制數,如果b>10,用大寫字母表示(10用A表示,等等) a為32位整數,2 <= b <= 16 如a=3,b = 2, 則輸出11 AC: dic
Python字典練習
彈出 函數 remove python3 mov text 4.3 san 說明符 #字典:通過名字引用值得數據結構 鍵/值from copy import deepcopy##################################################
python 小練習 11
lis 取出 pre 練習 全部 例如 col sort 自己 桌子上有一堆數量不超過20的果子,每個果子的重量都是不超過20的正整數,全部記錄在列表 L 裏面。小明和小紅決定平分它們,但是由於他們都太自私,沒有人願意對方比自己分得的總重量更多。而果子又不能切開,所以最後他
Python基礎練習
一個數 面積 ase oat 一行 pytho python基礎 一行代碼 計算 簡單輸入輸出交互 input(‘please input your name:‘)please input your name:xx‘xx‘>>> name=‘aa‘>
二、Python基礎練習
python color 一個 計算 一行 size 圓的面積 基礎 div 1.簡單輸入輸出交互。 age=input(‘請輸入年齡:‘) print(‘Wow,%s.‘%age) 2.用戶輸入兩個數字,計算並輸出兩個數字之和:(嘗試只用一行代碼實現這個功能) #接
python小練習
海倫公式 input 交互式 int 計算 radius rtl 同學 交互 1.Hello World! print(‘Hello World!‘) 2.簡單交互(交互式,文件式)教材P19 name = input("輸入名字:") print("{}同學,學好