Python|5个简单趣题熟悉基础语法

1 九九乘法表

print(“…….. Multiplication Table”)

# Display the number title

print(” |”, end = ”)

for j in range(1, 10):

….print(” “, j, end = ”)

print() # Jump to the new line

print(“—————————————–“)

# Display table body

for i in range(1, 10):

….print(i, “|”, end = ”)

….for j in range(1, 10):

……..# Display the product and align properly

……..if i >= j:

…………print(format(i * j, ‘4d’), end = ”)

….print()# Jump to the new line

output:

Python|5个简单趣题熟悉基础语法

也可以写成:

for i in range(1, 10):

….print(‘ ‘)

….for j in range(1, i+1):

……..print(“%d*%d=%d” % (j, i, i*j),end=” “)

output:

Python|5个简单趣题熟悉基础语法

2 最大公约数

2.1 使用简单循环

# Prompt the user to enter two integers

a = eval(input(“Enter first integer: “))

b = eval(input(“Enter second integer: “))

gcd = 1

k = 2

while k <= a/2 and k <= b/2:

…. if a % k == 0 and b % k == 0:

…….. gcd = k

…. k += 1

print(“The greatest common divisor for”,

…. a, “and”, b, “is”, gcd)

output:

Enter first integer: 125

Enter second integer: 2525

The greatest common divisor for 125 and 2525 is 25

2.2 也可以用辗转相除法:

a = eval(input(“Enter first integer: “))

b = eval(input(“Enter second integer: “))

def gcd(x,y):

….while(x%y != 0):

……..g = x%y

……..x = y

……..y = g

….return g

print(“The greatest common divisor for”,

….a, “and”, b, “is”, gcd(a,b))

3 蒙特卡罗模拟求pi

假设一个矩形的面积是4,矩形内切圆的半径是1,算出圆的面积也是π。

Python|5个简单趣题熟悉基础语法

在正方形内随机产生一个点,这个点落在圆内的概率为:

圆面积/矩形面积 = π/4

import random

NUMBER_OF_TRIALS = 1000000 # Constant,要随机产生一千万个点

numberOfHits = 0

for i in range(NUMBER_OF_TRIALS):

….x = random.random() * 2 – 1

….y = random.random() * 2 – 1

….if x * x + y * y <= 1:

……..numberOfHits += 1

pi = 4 * numberOfHits / NUMBER_OF_TRIALS

print(“PI is”, pi)

注意两个知识点:

随机函数random()的返回值:0 <= random() <1.0

圆方程:x² +y ² = 1

output1:

PI is 3.140228

try again:

PI is 3.141368

4 自然数内的前50个素数,每行显示10个

Python|5个简单趣题熟悉基础语法

output:

Python|5个简单趣题熟悉基础语法

也可以写成函数的形式:

Python|5个简单趣题熟悉基础语法

十进制转与16进制的相互转换

5.1 十进制转16进制

Python|5个简单趣题熟悉基础语法

output:

Enter a decimal number: 1000

The hex number for decimal 1000 is 3E8

5.2 十六进制转十进制

Python|5个简单趣题熟悉基础语法

output:

Enter a hex number: 3e8

The decimal value for hex number 3e8 is 1000

附代码1

NUMBER_OF_PRIMES = 50 # Number of primes to display

NUMBER_OF_PRIMES_PER_LINE = 10 # Display 10 per line

count = 0 # Count the number of prime numbers

number = 2 # A number to be tested for primeness

print(“The first 50 prime numbers are”)

while count < NUMBER_OF_PRIMES: # Repeatedly find prime numbers

….isPrime = True #Is the current number prime?

….divisor = 2

….while divisor <= number / 2:

……..if number % divisor == 0:

# If true, the number is not prime

…………isPrime = False # Set isPrime to false

…………break # Exit the for loop

……..divisor += 1

….if isPrime: # Display the prime number and increase the count

……..count += 1 # Increase the count

……..print(format(number, ‘5d’), end = ”)

……..if count % NUMBER_OF_PRIMES_PER_LINE == 0:

# Display the number and advance to the new line

…………print() # Jump to the new line

….number += 1 # Check if the next number is prime

附代码2

def isPrime(number):…………….# Check whether number is prime

….divisor = 2

….while divisor <= number / 2:

……..if number % divisor == 0: # If true, number is not prime…………

…………return False…………# number is not a prime

……..divisor += 1

….return True……………….. # number is prime

def printPrimeNumbers(numberOfPrimes):

….NUMBER_OF_PRIMES = 50…….. # Number of primes to display

….NUMBER_OF_PRIMES_PER_LINE = 10 # Display 10 per line

….count = 0……………….. # Count the number of prime numbers

….number = 2……………….. # A number to be tested for primeness

….

….while count < numberOfPrimes: # Repeatedly find prime numbers

………………………………# Print the prime number and increase the count

……..if isPrime(number):

…………count += 1………… # Increase the count

…………print(number, end = ” “)

…………if count % NUMBER_OF_PRIMES_PER_LINE == 0:

………………………………# Print the number and advance to the new line

…………….print()

………………………………# Check if the next number is prime

……..number += 1

def main():

….print(“The first 50 prime numbers are”)

….printPrimeNumbers(50)

main()………………………. # Call the main function

附代码3

………………..# Convert a decimal to a hex as a string

def decimalToHex(decimalValue):

….hex = “”

….while decimalValue != 0:

……..hexValue = decimalValue % 16

……..hex = toHexChar(hexValue) + hex

……..decimalValue = decimalValue // 16

….

….return hex

………………..# Convert an integer to a single hex digit in a character

def toHexChar(hexValue):

….if 0 <= hexValue <= 9:

……..return chr(hexValue + ord(‘0’))

….else:……………………………… # 10 <= hexValue <= 15

……..return chr(hexValue – 10 + ord(‘A’))

def main():

………………..# Prompt the user to enter a decimal integer

….decimalValue = eval(input(“Enter a decimal number: “))

….print(“The hex number for decimal”,

……..decimalValue, “is”, decimalToHex(decimalValue))

main()…………………………………. # Call the main function

附代码4:

def main():

……………………# Prompt the user to enter a hex number

….hex = input(“Enter a hex number: “).strip()

….decimal = hexToDecimal(hex.upper())

….if decimal == None:

……..print(“Incorrect hex number”)

….else:

……..print(“The decimal value for hex number”,

…………hex, “is”, decimal)

def hexToDecimal(hex):

….decimalValue = 0

….for i in range(len(hex)):

……..ch = hex[i]

……..if ‘A’ <= ch <= ‘F’ or ‘0’ <= ch <= ‘9’:

…………decimalValue = decimalValue * 16 +

…………….hexCharToDecimal(ch)

……..else:

…………return None

….return decimalValue

def hexCharToDecimal(ch):

….if ‘A’ <= ch <= ‘F’:

……..return 10 + ord(ch) – ord(‘A’)

….else:

……..return ord(ch) – ord(‘0’)

main()……………. # Call the main function

-End-

网络转载,经零妖贰捌整理后发布(声明:本站所有文章仅供学习,版权归原作者所有;若有侵权,请联系在线客服进行删除,文章链接:https://www.51kxg.com/archives/768。)

(0)
上一篇 2018-07-09 00:38
下一篇 2018-07-09 00:50

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

公众号
公众号
创建WIFI码
创建WIFI码
人工客服
分享本页
返回顶部