python—基础练习题

一、字典输出

import json

dict1 = {‘School‘:‘zhoubei‘,‘Name‘: ‘张三‘, ‘Age‘: 7, ‘Class‘: ‘第一班‘}
print dict1[‘School‘]
print json.dumps(dict1).decode(‘unicode-escape‘)

二、if /while 循环

-------输入三个数字,是否能组成三角形,并判断是什么三角形--------
n1 = int(raw_input(‘请输入第一个整数数字:‘))
n2 = int(raw_input(‘请输入第二个整数数字:‘))
n3 = int(raw_input(‘请输入第三个整数数字:‘))

if n1 + n2> n3 and n2 + n3> n1 and n1 + n3> n2:??????? #两边之和大于第三边
    if n1 == n2 and n2 == n3:
        print (‘这是个等边三角形‘)
    elif n1 == n2 or n2 == n3 or n1 == n3:
        print (‘这是个等腰三角形‘)
    elif n1**2+n2**2 == n3**2 or n2**2 + n3**2 == n1**2 or n1**2 + n3**2 == n2**2:??? #符合勾股定理为直角三角形
        print (‘这是个直角三角形‘)
    else:
        print (‘这是个普通的三角形‘)
else:
    print (‘无法组成三角形:‘)

-----------------与电脑猜拳-------------------
import random
import json

dict_c = {1:‘石头‘,2:‘剪刀‘,3:‘布‘}
dict_u =  {‘石头‘:1,‘剪刀‘:2,‘布‘:3}
user = raw_input(‘请输入:(只能是石头/剪刀/布)‘)
user1 = dict_u[user]
computer = random.randint(1,3)
c = dict_c[computer]

if user != ‘石头‘ and user != ‘剪刀‘ and user != ‘布‘:
    print(‘你又调皮了,只能输入石头/剪刀/布‘)
else:
    print(‘电脑出:‘)
    print json.dumps(c).decode(‘unicode-escape‘)

    print("输赢结果:")
    if user == c:
        print(‘平手‘)
    elif user1 == 1 and computer == 3:
        print(‘SB,你输啦‘)
    elif user1 == 2 and computer == 1:
        print(‘SB,你输啦‘)
    elif user1 == 3 and computer == 2:
        print(‘SB,你输啦‘)
    else:
        print(‘你走狗屎运了‘)

-----------------输出100以内的素数-------------------
n=2
while(n<100):
    i = 2??????????????????? #i从2开始
    while(i<=10):
        if n%i == 0:
            break
        i+=1
    if (i>n/i):
        print n
    n+=1

三、for 循环

#公鸡3元/只,母鸡5元/只,小鸡每元3只
-----------------100元买100只鸡-------------------
for x in range(33):?????????????????   # 100元内,公鸡数不能超过33只
    for y in range(20):??????????? ?   # 同理,母鸡不能超过20只
        for z in range(100):?? ????   # 同理,小鸡不会超过100只
            if 3*x+5*y+(1.0/3)*z ==100 and x+y+z==100:
                print x,y,z

--------------输出1-9,0-----------------
    list1 = range(10)
    list1.append(list1.pop(0))
    print list1

#一对兔子每月生一对兔子,刚出生的兔子两个月后才能生育
--------------21个月兔子数量-----------------
num1 = 2
num2 = 2
sum = 0
for i in range(1,21):
    print "第",i,"个月"???????
    num1 = num2
    num2 = sum
    sum = num1+num2
    print "有", sum, "个兔子"  ????#后一个月兔子的数量为前两个月兔子数量之和
print "一共有",sum,"个兔子"

#小明有一美元要买(1-100美分)东西,求出找零最少的情况
--------------找零钱-----------------
buy = input(‘请输入买糖的价格1-100:‘)
count = 0
for a in range(0,5):?????????????????   #25美分面额的 不能超过4张? (25×5>100) ???????
    for b in range(0,3):??????????????? #10美分面额的 不能超过2张? (10×3>25)这时可以给一张25美分面额的替代了
        for c in range(0,2):??????? ????# 5美分面额的 不能超过1张 ?(5×2=10) 这时可以用一张10美分面额的替代了
            for d in range(0,5):??? ????#1美分的 不能超过4张?? (1×5=5) 这时可以给一张5 美分面额的替代
                if a*25+b*10+c*5+d*1+buy == 100 and 10*b+5*c!=25 and 5*d+c!=10:
                    count = a + b + c + d
                    print ‘找零%d个25美分 %d个10美分 %d个5美分 %d个1美分‘%(a, b, c, d)
                    print ‘一共‘, count, ‘个硬币‘

---------------乘法口诀表--------------------
for i in range(1,10):
        for j in range(1,i+1):
                if i*j<10:
                        print i, ‘ב, j, ‘=‘, i * j, ‘ ‘,
                else:
                        print i,‘ב,j ,‘=‘, i*j,‘‘,
        print ‘‘

四、函数

-----------------输出不定个数的数字的和-------------
sum_b = 0
sum_c = 0
sum_d = 0
def functionC(x,y,*args,**kwargs):
    global sum_d
    sum_b = x+y
    sum_c= sum(args)??????? #求和函数sum()必须传入可迭代对象
    sum_d = sum_c+sum_b
    return sum_d
functionC(1,2,3,4,5,6,7,8,9,10)
print sum_d

------------模拟range()全功能----------------
list_input = [2,9]            ????#手动调制输入的range()
def range_1(*args):
    if len(list_input)==1:    #输入一个数字时
        x0 = list_input[0]
        list_output = []
        i = 0
        while x0>1 and i<x0:
            list_output.append(i)
            i+=1
        else:
            print ‘输入的数字必须大于1‘
        return list_output
    elif len(list_input)==2:  #输入二个数字时
        x0  = list_input[0]
        x1 = list_input[1]
        list_output = []
        i = x0
        if x0<x1:
            while x1>0 and i<x1:
                list_output.append(i)
                i+=1
            return list_output
        else:
            print(‘输入错误‘)
    elif len(list_input)==3:  #输入三个数字时
        x0  = list_input[0]
        x1 = list_input[1]
        x3 = list_input[2]
        list_output = []
        i = x0
        if x0<x1 and x3<x1:
            while x1>1 and i<x1:
                list_output.append(i)
                i+=x3
            return list_output
        else:
            print(‘输入错误‘)
    else:
        print ‘你又调皮了,最多只能输入三个‘
print range_1(list_input)

-----------遍历计算字符串的长度----------
list_a = []
j = 0
def str_x(str_a):
    for i in str_a:
        global j??????????? #使用全局变量计数
        list_a.append(i)
        j+=1
    return j
str_a =list(raw_input(‘请输入字符串:‘))
str_x(str_a)
print j

------------计算传入数字的各个位数之和------------
def item_sum(x):
    if str1<0:??????????????? #输入的数小于零时
        abs(str1)???????  #取绝对值
        list_sum = []
        str2 = str(x)
        for item in str2:
            list_sum.append(int(item))
    elif str1>0:
        list_sum = []
        str2 = str(x)
        for item in str2:
            list_sum.append(int(item))
        return sum(list_sum)
    else:
        return 0
str1 = 3418291283??????????? #传入数字转成字符串 / 传入数字型字符串
print item_sum(str1)

-----------------互不相同且无重复数字的三位数----------------
count = 0
list_b = 0
def third_num(list_a):
    list_len = []
    global count
    for i in list_a:
        for j in list_a:
            for k in list_a:
                if i!=j and j!=k and i!=k:
                    list_b =str(i)+str(j)+str(k)
                    list_len.append(list_b)
                    count+=1
    return list_len

list_a = [1,2,3,4]
print third_num(list_a)
print ‘三位数个数:‘,count

----------------判断这一天是这一年的第几天----------------------
def day_in_year(year_n,month_n,day_n):
    run = [31,29,31,30,31,30,31,31,30,31,30,31]        #闰年,二月份天数不能大于29
    ping = [31,28,31,30,31,30,31,31,30,31,30,31]        #非闰年,二月份天数不能大于28
    if year_n>= 1 and 12>=month_n>= 1 and 32>day_n>= 1:
        if year_n % 4 == 0 and year_n % 100 != 0 or year_n % 400==0:
            day_n = sum(run[:month_n-1])+day_n
            return day_n
        else:
            day_n = sum(ping[:month_n-1])+day_n
            return day_n
    else:
        print ‘输入格式错误‘
year_n, month_n,day_n= int(raw_input(‘请输入年‘)),int(raw_input(‘请输入月‘)),int(raw_input(‘请输入日‘))
print day_in_year(year_n,month_n,day_n)

----------------不使用sort()完成对任意list的升序和降序的排列-------------------???#冒泡排序
list7 = [2,5,6,1,4,9,]
def sort_num(*args):
    list8 = []
    for i in range(len(list7)):
        for j in range(len(list7)-1):
            if list7[i]<list7[j]:
                list7[j],list7[i] = list7[i],list7[j]??? #直接交换
    list8 = list7
    return list8
print ‘升序结果:‘,sort_num(list7)

-----------对元组内数字型元素求和----------------
def fun(num1,num2,*agrs,**kwargs):
    sum1 = 0
    sum2 = 0
    sum0 = int(num1.strip())+int(num2)
    for i in agrs:
        if str(i).strip().isdigit():
            sum1 += int(i)
    for j in kwargs.values():
        if str(j).strip().isdigit():
            sum2 += int(j)
    num3 = sum0+sum1+sum2
    return num3
a = fun(‘  1‘, 2, 3, ‘  4‘, 5, ‘hello‘, a1=2, b1=3)
print a

--------------字典合并----------------
def merge_two_dicts(x, y):
    dict3 = {}
    dict3 = dict1.copy()
    dict3.update(dict2)
    return dict3
dict1 = {‘a‘:1,‘b‘:2,‘c‘:3,‘d‘:‘hello‘}
dict2 = {‘a‘:2,‘b‘:‘2‘,‘c‘:‘she‘,‘e‘:‘10‘,‘f‘:4}
print(merge_two_dicts(dict1,dict2))

原文地址:http://blog.51cto.com/13984132/2280952

时间: 2024-11-07 13:48:34

python—基础练习题的相关文章

Python基础练习题1

Python基础练习题1 1.执行 Python 脚本的两种方式 答:命令行执行.编辑器执行 2.简述位.字节的关系 答:字节byte 位:bit.1字节 = 8位 3.简述 ascii.unicode.utf-8.gbk 的关系 答: ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符, Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个

Python基础练习题

for i in range(1,5): for j in range(1,5): print(i,j) print("-"*10) ''' 1 1 1 2 1 3 1 4 ---------- 2 1 2 2 2 3 2 4 ---------- 3 1 3 2 3 3 3 4 ---------- 4 1 4 2 4 3 4 4 ---------- ''' for m in range(1,5): for n in range(1,m+1): print(n,m) print(&

08: python基础练习题

1.while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 # 使用while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 s = 0 i = 2 while i <= 100: if i % 2 == 0: s += i else: s -= i i += 1 print(s,i) # 运行结果:51 101 while循环实现输出2 - 3 + 4 - 5 + 6 ... + 100 的和 2.for循环实现9乘9乘法表 for i i

Python基础练习题100例(Python 3.x)

1:题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源代码: 1 for i in range(1, 5): 2 for j in range(1, 5): 3 for k in range(1, 5): 4 if (i != k) and (i != j) and (j != k): 5 print(i, j, k) 以上实例输出结果为: 1 1 2

python基础练习题3

01:有1,2,3,4个数字,能组成多少个互不相同且无重复的三位数,都是多少思路:可填写在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去掉不满足条件的排列 list =[1,2,3,4] list1=[] for one in list: for owe in list: for qwe in list: if owe!=one and owe!=qwe and one!=qwe: a= '%d%d%d'%(one,owe,qwe) list1.append(a) print(l

python基础练习题09

在控制台连续输出五行*,每一行星号的数量依次递增 row=1 while row<=5: col=1 while col<=row: print('*',end='') col+=1 print() row+=1 # 输出结果 # * # ** # *** # **** # ***** 02: row=5 while row>=1: col=1 while col<=row: print('*',end='') col+=1 print('') row-=1 # 输出结果 # **

Python 基础 day1

一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)python  JAVA :既可以写网页 ,也可以写后台功能 -python:执行效率低,开发效率高 -java:执行效率高,开发效率低 2)php :只适用于写网页 3)python种类: jpython ironpython JavaScriptpython rubypython cpython 4)安装

Python基础-day01

写在前面 先后接触过很多编程语言,最喜欢的就是C和Python,相比其他语言,C 是神器,优点太多了:个人而言,C 最重要的一点就是能够让你在敲代码的时候是以一个计算机科学家的角度去思考,而不是仅仅停留在程序表面: 而Python很简单.实用:可以节省很多开发时间,Life is short, use Python.  他的简单之美也符合Unix/Linux 哲学:KISS(Keep It Simple, Stupid.) 这次来学习不仅仅是想写一些基础的脚本,而是想深入.全面的接触Python

python基础晋级篇

Python开发[第四篇]:Python基础(一) 三元运算 三元运算(三目运算),是对简单的条件语句的缩写. 1 2 3 4 5 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2”赋值给result变量 基本数据类型补充 set set集合,是一个无序且不重复的元素集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2