python基础

文章介绍了八皇后问题及其解决方案,展示了使用Python的回溯算法来解决此问题的代码。同时,文中还涵盖了Python的基础语法,如循环、条件判断、函数定义、默认参数、匿名函数、异常处理等编程概念,并提供了相关示例。
摘要由CSDN通过智能技术生成

八皇后问题

八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。

#* queen problem with recurison
BOARD_SIZE = 8

def under_attack(col, queens):
    left = right = col
    for r, c in reversed(queens):
 #左右有冲突的位置的列号
       left, right = left - 1, right + 1

       if c in (left, col, right):
            return True
    return False

def solve(n):
    if n == 0:
        return [[]]

    smaller_solutions = solve(n - 1)

    return [solution+[(n,i+1)]
       for i in range(BOARD_SIZE)
           for solution in smaller_solutions
               if not under_attack(i+1, solution)]
for answer in solve(BOARD_SIZE):
    print(answer)

找出排序数组的索引

def deduplication(self, nums):#找出排序数组的索引
    for i in range(len(nums)):
        if nums[i]==self:
            return i
    i=0
    for x in nums:
        if self>x:
            i+=1
    return i
print(deduplication(5, [1,3,5,6]))

在这里插入图片描述

嵌套循环

i = 2
while(i < 100):
    j = 2
    while(j <= (i/j)):
        if not(i%j): break
        j = j + 1
    if (j > i/j) : print(i, " 是素数")
    i = i + 1
print("Good bye!")

在这里插入图片描述
break

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for letter in 'Python':     # 第一个实例
    if letter == 'h':
        break
    print ('当前字母 :', letter)
    
var = 10                    # 第二个实例
while var > 0:              
    print ('当前变量值 :', var)
    var = var -1
    if var == 5:   # 当变量 var 等于 5 时退出循环
        break
print ("Good bye!")

在这里插入图片描述
continue

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for letter in 'Python':     # 第一个实例
    if letter == 'h':
        continue
    print ('当前字母 :', letter)
var = 10                    # 第二个实例
while var > 0:              
    var = var -1
    if var == 5:
        continue
    print ('当前变量值 :', var)
print ("Good bye!")

在这里插入图片描述
pass

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
# 输出 Python 的每个字母
for letter in 'Python':
    if letter == 'h':
        pass
        print ('这是 pass 块')
    print ('当前字母 :', letter)
print ("Good bye!")

在这里插入图片描述

def sample(n_samples):
    pass

#该处的 pass 便是占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行

日期和时间

#获取当前时间戳

import time;  # 引入time模块
 
ticks = time.time()
print ("当前时间戳为:", ticks)

在这里插入图片描述

#获取当前时间

localtime = time.localtime(time.time())
print ("本地时间为 :", localtime)

在这里插入图片描述

#获取格式化时间

localtime = time.asctime( time.localtime(time.time()) )
print ("本地时间为 :", localtime)

在这里插入图片描述

#格式化日期

import time
# 格式化成2016-03-20 11:45:39形式
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) 
 
# 格式化成Sat Mar 28 22:24:24 2016形式
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
  
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print (time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))

在这里插入图片描述

#获取某月日历

import calendar
 
cal = calendar.month(2016, 1)
print ("以下输出2016年1月份的日历:")
print (cal)

在这里插入图片描述
函数

#调用函数时,默认参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入

def printinfo( name, age = 35 ):
    "打印任何传入的字符串"
    print ("Name: ", name);
    print ("Age ", age);
    return;
 
#调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );

在这里插入图片描述

#不定长参数

def printinfo( arg1, *vartuple ):
    "打印任何传入的参数"
    print ("输出: ")
    print (arg1)
    for var in vartuple:
        print (var)
    return;
 
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 );

在这里插入图片描述

#匿名函数

sum = lambda arg1, arg2: arg1 + arg2;
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))

在这里插入图片描述

#return语句

def sum( arg1, arg2 ):
   # 返回2个参数的和."
    total = arg1 + arg2
    print ("函数内 : ", total)
    return total;
 
# 调用sum函数
total = sum( 10, 20 );

在这里插入图片描述

#全局变量与局部变量

total = 0; # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
   #返回2个参数的和."
    total = arg1 + arg2; # total在这里是局部变量.
    print ("函数内是局部变量 : ", total)
    return total;
 
#调用sum函数
sum( 10, 20 );
print ("函数外是全局变量 : ", total)

在这里插入图片描述

#异常处理 

try:
    fh = open("testfile", "w")
    try:
        fh.write("这是一个测试文件,用于测试异常!!")
    finally:
        print "关闭文件"
        fh.close()
except IOError:
    print ("Error: 没有找到文件或读取文件失败")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rubyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值