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]

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

    推荐阅读