Python习题笔记

字符串拼接。

接受用户输入的两个字符串,将它们组合后输出。

str1=input("请输入一个人的名字:")
str2=input("请输入一个国家的名字:")
print("世界这么大,{}想去{}看看".format(str1,str2))

知识点:
1.input( ),括号内可加" ",对用户输入进行提示。
2.format格式化函数:print("xxxx{},xxxx{}".format(str1,str2))
不设置指定位置,按默认顺序

>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'
整数序列求和

用户输入一个正整数N,计算从1到N(包含1到N)相加之后的结果。

N = input("请输入一个正整数")
sum=0
for i in range(int(N)):
    sum=sum+i
print("sum = ",sum)

知识点:
1.range( )函数:
range(start, stop[, step]) stop不包含stop本身的数字
range(10)从0到9
range(1,11)从0到10
range(0, 10, 3)从0到9,步长为 3: 0 3 6 9
range(0, -10, -1) 负数:[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

九九乘法表输出
for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}".format(i,j,i*j),end=' ')
    print('\n')
1.4计算1+2!+3!+···+10!
sum,tmp=0,1
for i in range(1,11):
    tmp*=i
    sum+=tmp
print("sum={}".format(sum))

知识点:
1.python也可以进行+= *=操作

猴子吃桃

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第5天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

n=1
for i in range(1,5):
    n=(n+1)<<1
print(n)

思路:n开始为1,过了几天,n就要加1再乘2几次
知识点:
1.n<<1意思为n*2的1次方

健康食谱输出

列出5种不同食材,输出它们可能组成的所有菜式名称

diet=['西红柿','花椰菜','黄瓜','大白菜','胡萝卜']
for x in diet:
    for y in diet:
        if(x!=y):
            print("{}and{}".format(x,y))

知识点:
1.diet=['西红柿','花椰菜','黄瓜','大白菜','胡萝卜']是一个列表list

1.数据类型和变量
请打印出以下变量的值:
n = 123
f = 456.789
s1 = 'Hello, world'
s2 = 'Hello, 'Adam''
s3 = r'Hello, "Bart"'
s4 = r'''Hello,
Lisa!''

print(123)
print(456.789)
print('Hello, world')
print('Hello, \'Adam\'')
print('Hello, "Bart"')
print('Hello,\nLisa!')
123 
456.789 
Hello, world 
Hello, 'Adam' 
Hello, "Bart" 
Hello, 
Lisa! 

2.字符串和编码
小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点,并用字符串格式化显示出'xx.x%',只保留小数点后1位:

r=(s2-s1)/s1
print('{:.1%}'.format(r))

1.使用format保留一位小数:'{:.1}'.format(r)
转换成百分数形式并保留一位小数:{:.1%}.format(r)

r = (s2-s1)/s1*100
print('%.1f%%' % r)

1.若想输出%,则需要在%前加%。%%
2.%.nf,保留n位小数。
print('%.1f%%' % r):r前的%分界,后面按顺序跟随变量。

3.list和tuple

请用索引取出下面list的指定元素:

L = [
    ['Apple', 'Google', 'Microsoft'],
    ['Java', 'Python', 'Ruby', 'PHP'],
    ['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])
4.条件判断

小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
if-elif判断并打印结果:

height = 1.75
weight = 80.5
bmi = weight/(height*height)
if bmi<18.5:
    print('过轻')
elif 18.5<=bmi<=25:
    print('正常')
elif 2532:
    print('严重肥胖')

知识点:
1.条件判断:if...elif...else...

5.调用函数

利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串:

n1 = 255
n2 = 1000
print(hex(n1))
print(hex(n2))

知识点:
1.hex()函数:返回整数对应得十六进制

6.定义函数

请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程 ax^2+bx+c=0ax2+bx+c=0 的两个解。
提示:
计算平方根可以调用math.sqrt()函数:

>>> import math
>>> math.sqrt(2)
1.4142135623730951
import math
def quadratic(a, b, c):    
    l = math.sqrt(b**2-4*a*c)
    m = (-b+l)/(2*a)
    n = (-b-l)/(2*a)
    return m,n

知识点:
1.import math:导入math类
2.math.sqrt(n):对n开方
3.b**2:b的平方
4.定义函数:def function( )

7.函数的参数

以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积:

def product(x, *numbers):
    tmp = x
    for n in numbers:
        tmp = tmp * n
    return tmp

知识点:
1.位置参数:power(x,n):必须传入的参数
2.默认参数:power(x,n=2):若不传入,则为默认值,若传入,则为传入值。
3.可变参数:power(*x,n):允许传入0个或任意个参数,函数调用时自动组装成一个tuple。
4.关键字参数:**other:允许传入0个或任意个含参数名的参数,关键字参数在函数内部自动组装成一个dict。
5.命名关键字参数:如果要限制关键字参数的名字,就可以用命名关键字参数。命名关键字参数需要一个特殊分隔符**后面的参数被视为命名关键字参数。

8.切片

利用切片操作,实现一个trim()函数,去除字符串首尾的空格:

def trim(s):
       if s[:1] is ' ':
             return trim(s[1:])
       elif s[-1:] is ' ':
             return trim(s[:-1])
       else:
             return s

思路:运用递归函数,先对前段进行处理,每次判断字符串首位是否为空格,若为空格,则更新字符串为第2个字符后的内容;再对后段进行处理,每次判断字符串末位是否为空格,若为空格,则更新字符串为倒数第2个字符前的内容。
知识点:
1.L[:10]:前10个数
2.L[-10:]:后10个数
3.L[:10:2]:前10个数,每2个取一个
4.L[-1]:倒数第一个

9.迭代

请使用迭代查找一个list中最小和最大值,并返回一个tuple:

def imimi(L):
    while len(L)!=0:
        Max=Min=L[0]
        for x in L:
            if x >=Max:
                Max=x
            if x 

感想:python确实简便,但我居然有些不习惯,用python一定要注意格式!感觉又进入了之前的死胡同了,感觉一样的代码,别人的就能ac,我的就老是有错误,多多练习!

10.列表生成器

字符串变小写且只保留字符串

L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [s.lower() for s in L1 if isinstance(s,str) == True]

知识点:
1..lower():将字符串变成小写的函数
2.isinstance(s,str):判断s是否为str类型
3....for s in L...:for前面可以添加操作,L后可以添加条件判断

你可能感兴趣的:(Python习题笔记)