Python实战

Python实战

""""
分段函数求值
        3x  -  5(x> 1)
f(x)= x + 2(-1 <= x <= 1)
        5x + 3(x <-1)
"""""

x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
elif x >= -1:
    y = x + 2
else:
    y = 5 * x + 3
print('f(%.2f) = %.2f' % (x,y))


''''
range(101)可以产生一个0到100的整数序列。
range(1, 100)可以产生一个1到99的整数序列。
range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量。
'''''

'''
1-100求和
sum = 0
for x in range(101):
    sum += x
print(sum)
'''
"1-100偶数求和"
sum = 0
for x in range(1,101,2):
    sum += x
print(sum)
'''
猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
'''''
import random

answer = random.randint(1,100)
counter = 0
while True:
    counter +=1
    number = int(input('请输入:'))
    if number < answer:
        print('比它大')
    elif number > answer:
        print('比它小')
    else:
        print('你猜对了')
        break
        #break一定要,不然不会跳出循环
print('你总共猜了%d次' % counter)
if counter > 7:
    print('智商需要充值')
"""
用户身份验证
"""
# import getpass
# from getpass import getpass
# from getpass import *

username = input('请输入用户名: ')
password = input('请输入口令: ')
# 输入口令的时候终端中没有回显
# password = getpass.getpass('请输入口令: ')
if username == 'admin' and password == '123456':
    print('身份验证成功!')
else:
    print('身份验证失败!')
"""
输出乘法口诀表(九九表)
"""""

for i in range(1,10):
    for j in range(1,i+1):
        print('%d * %d = %d'%(i, j, i * j),end='\t')
    print()
"""
输入一个正整数判断它是不是素数

"""""
from math import sqrt

num = int(input('请输入一个正整数;'))
end = int(sqrt(num))
is_prime = True
for x in range(2, end + 1):
    if num % x == 0:
        is_prime = False
        break
if is_prime and num != 1:
    print('%d是素数' % num)
else:
    print('%d不是素数' % num)
"""
打印各种三角形图案

*
**
***
****
*****

    *
   **
  ***
 ****
*****

    *
   ***
  *****
 *******
*********


"""""

row = int(input('请输入行数: '))
for i in range(row):
    for _ in range(i + 1):
        print('*', end='')
    print()


for i in range(row):
    for j in range(row):
        if j < row - i - 1:
            print(' ', end='')
        else:
            print('*', end='')
    print()

for i in range(row):
    for _ in range(row - i - 1):
        print(' ', end='')
    for _ in range(2 * i + 1):
        print('*', end='')
    print()
"""
求解《百钱百鸡》问题
1只公鸡5元 1只母鸡3元 3只小鸡1元 用100元买100只鸡
问公鸡 母鸡 小鸡各有多少只
"""""
for x in range(0,20):
    for y in range(0,33):
        z = 100 - x - y
        if x * 5 + y * 3 + z / 3 == 100:
            print('%d只公鸡、%d只母鸡、%d只小鸡。'%(x,y,z))
        
"""
Craps赌博游戏
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
玩家再次要色子 如果摇出7点 庄家胜
如果摇出第一次摇的点数 玩家胜
否则游戏继续 玩家继续摇色子
玩家进入游戏时有1000元的赌注 全部输光游戏结束

"""""

from random import randint

money = 1000
while money > 0 :
    print('你的资产为:%d'%money)
    needs_go_on = False
    while True:
        debt = int(input('请下注:'))
        if debt > 0 and debt <= money :
            break
    first = randint(1,6) + randint(1,6)
    print('玩家摇出了%d点。'% first)
    if first == 7 or first == 11:
        print('玩家胜')
        money += debt
    elif first == 2 or first == 3 or first == 12 :
        print('庄家胜')
        money -= debt
    else:
        needs_go_on =True

    while needs_go_on :
        current = randint(1,6) + randint(1,6)
        print('玩家摇出来%d点'%current)
        if current == 7:
            print('庄家胜!')
            money -= debt
            needs_go_on = False
        elif current == first:
            print('玩家胜!')
            money += debt
            needs_go_on = False

print('你破产了,游戏结束!')

"""
输出斐波那契数列的前20个数
1 1 2 3 5 8 13 21 ...

"""""

a = 0
b = 1
for _ in range(20):
    a, b = b, a + b
    print(a, end=' ')
"""
找出100~999之间的所有水仙花数
水仙花数是各位立方和等于这个数本身的数
如: 153 = 1**3 + 5**3 + 3**3

"""""

for num in range(100,1000):
    low = num % 10
    mid = num // 10 % 10
    high = num //100
    if num == low ** 3 + mid ** 3 + high ** 3:
        print(num)
"""
判断输入的正整数是不是回文数
回文数是指将一个正整数从左往右排列和从右往左排列值一样的数
Version: 0.1
Author: 骆昊
Date: 2018-03-02
"""""

num = int(input('请输入一个正整数: '))
temp = num
num2 = 0
while temp > 0:
    num2 *= 10
    num2 += temp % 10
    temp //= 10
if num == num2:
    print('%d是回文数' % num)
else:
    print('%d不是回文数' % num)
"""
找出1~9999之间的所有完美数
完美数是除自身外其他所有因子的和正好等于这个数本身的数
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14

"""""
import time
import math

for num in range(1, 10000):
    sum = 0
    for factor in range(1, int(math.sqrt(num)) + 1):
        if num % factor == 0:
            sum += factor
            if factor > 1 and num / factor != factor:
                sum += num / factor
    if sum == num:
        print(num)

xxx

def factorial(num):
    """
    求阶乘

    :param num:非负整数
    :return:阶乘
    """
    result = 1
    for n in range(1, num + 1):
        result *= n
    return result

m = int(input('m = '))
n = int(input('n = '))

print(factorial(m)//factorial(n)//factorial(m - n))

from random import randint

def roll_dice(n = 2):
    """

    :param n: 色子个数
    :return: n 个色字点数的和
    """
    sum = 0
    for _ in range(n):
        sum += randint(1,6)
    return sum
def add(a=0,b=0,c=0):
    return a + b + c

print(roll_dice())
print(roll_dice(3))
print(roll_dice(n=4))

print(add())
print(add(1))
print(add(1,2))
print(add(1,2,3))
print(add(3,2,1))
print(add(b=500,c=1000,a=400))
"""
输入M和N计算C(M,N)
太过于重复使用函数
用def定义函数

"""

m = int(input('m = '))
n = int(input('n = '))
fm = 1
for num in range(1, m + 1):
    fm *= num
fn = 1
for num in range(1, n + 1):
    fn *= num
fmn = 1
for num in range(1, m - n + 1):
    fmn *= num
print(fm // fn // fmn)




"""
Craps赌博游戏
玩家摇两颗色子 如果第一次摇出7点或11点 玩家胜
如果摇出2点 3点 12点 庄家胜 其他情况游戏继续
玩家再次要色子 如果摇出7点 庄家胜
如果摇出第一次摇的点数 玩家胜
否则游戏继续 玩家继续摇色子
玩家进入游戏时有1000元的赌注 全部输光游戏结束

"""""

from random import randint

money = 1000
while money > 0 :
    print('你的资产为:%d'%money)
    needs_go_on = False
    while True:
        debt = int(input('请下注:'))
        if debt > 0 and debt <= money :
            break
    first = randint(1,6) + randint(1,6)
    print('玩家摇出了%d点。'% first)
    if first == 7 or first == 11:
        print('玩家胜')
        money += debt
    elif first == 2 or first == 3 or first == 12 :
        print('庄家胜')
        money -= debt
    else:
        needs_go_on =True

    while needs_go_on :
        current = randint(1,6) + randint(1,6)
        print('玩家摇出来%d点'%current)
        if current == 7:
            print('庄家胜!')
            money -= debt
            needs_go_on = False
        elif current == first:
            print('玩家胜!')
            money += debt
            needs_go_on = False

print('你破产了,游戏结束!')

# 在参数名前面的*表示args是一个可变参数
# 即在调用add函数时可以传入0个或多个参数
def add(*args):
    total = 0
    for val in args:
        total += val
    return total


print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3))
print(add(1, 3, 5, 7, 9))

moudle1

def foo():
    print('hello, world!')

moudle2

def foo():
    print('goodbye, world!')

test

from module1 import foo

# 输出hello, world!
foo()

from module2 import foo

# 输出goodbye, world!
foo()

import module1 as m1
import module2 as m2

m1.foo()
m2.foo()

moudle3

def foo():
    pass


def bar():
    pass


# __name__是Python中一个隐含的变量它代表了模块的名字
# 只有被Python解释器直接执行的模块的名字才是__main__
if __name__ == '__main__':
    print('call foo()')
    foo()
    print('call bar()')
    bar()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值