Python代码练习1

Posted 未末0902

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python代码练习1相关的知识,希望对你有一定的参考价值。

学习目标:

开始大家是萌新

最初的15天,都是Python语言基础的修炼。基本功很重要

贵在坚持,一定要每天做一些小练习!

加油!Fighting!!!


学习内容:

**

1.计算BMI指数

**

height = float(input("请输入你的身高 (单位为米): "))
weight = float(input("请输入你的体重 (单位为千克) : "))
bmi = weight / (height * height)
print(“您的bmi指数为:” + str(bmi))
if bmi < 18.5:
print(“您的体重过轻!!”)
if bmi >= 18.5 and bmi < 24.9:
print("正常范围,继续保持 ")
if bmi >= 24.9 and bmi < 29.9:
print(“您的体重过胖!!”)
if bmi >= 29.9:
print(“肥胖!!!”)

2. import 模块名

import math
import random
import posixpath as path

print(math.sqrt(16)) #计算并输出16的平方根
print(math.cos(math.pi/4)) #计算余弦值
print(random.choices(‘abcd’, k=8)) #从字符串’abcd’随机选择8个字符

print(path.isfile(r’C:\\Windows\\notepad.exe’)) #测试指定路径是否为文件

3.from 模块名 import 对象名

from math import pi as PI
from os.path import getsize
from random import choice

r = 3
print(round(PIrr,2)) #计算半径为3的圆的面积
print(getsize(r’C:\\Windows\\notepad.exe’)) #计算文件大小,单位为字节
print(choice(‘Python’)) #从字符串中随机选择一个字符

4.from模块名 import *

from itertools import *

characters = ‘1234’
for item in combinations(characters,3): #从4 个字符串中任选3个的组合
print(item, end=’’) #“end=’’“表示输出后不换行

print(’\\n’+’=’*20) #换行后输出20个等于号
for item in permutations(characters, 3): #从4 个字符中任选3个的排列
print(item,end=’’)

5.整数,浮点数,复数

import math

print(math.factorial(32)) #计算 32 的阶乘
print(0.4-0.3 == 0.1) #浮点数之间尽量避免直接比较大小
print(math.isclose(0.4-0.3,0.1)) #测试两个浮点数之间是否接近
num = 7
squreRoot = num ** 0.5 #计算平方根
print(squreRoot2 == num)
print(math.isclose(squreRoot
2, num))
c = 3+4j #Python 内置支持复数类型及其运算
print(c+c) #复数相加
print(c**2) #幂运算
print(c.real) #查看复数的实部
print(c.imag) #查看复数的虚部
print(c+4j.imag) #相当于 3+(4j).imag
print(c.conjugate()) #查看共轭复数
print(abs©) #计算复数的模

6.列表,元组,字典,集合

创建列表对象

x_list = [1,2,3]
创建元组对象
x_tuple = (1,2,3)
创建字典对象,元素的形式为 “键:值”
x_dict = {‘a’:97, ‘b’:98, ‘c’:99}
创建集合对象
x_set = {1,2,3}
使用下标访问列表中指定位置的元素,元素下标从0开始
print(x_list[1])
元组也支持使用序号作为下标,1 表示第二个元素的下标
print(x_tuple[1])
#访问字典中特定“键”对应的“值”,字典对应的下标是“键”
print(x_dict[‘a’])
#查看列表长度,也就是其中元素的个数
print(len(x_list))
#查看元素 2 在元组中首次出现的位置
print(x_tuple.index(2))
#查看字典中哪些“键”对应的“值”为98
for key, value in x_dict.items():
if value == 98:
print(key)

1.1 lambda 表达式

也可以给lambda 表达式起名字,定义具体函数名
func = lambda x, y: x+y
像调用函数一样调用lambda 表达式
print(func(3, 5))
data = [9, 88, 444]
按各位数字之和的大小升序排序
print(sorted(data, key=lambda num: sum(map(int, str(num)))))
输出转换成字符串之后的长度最大的数字
print(max(data, key=lambda num: len(str(num))))

1.2 递归函数

编写递归函数,计算组合数c(n,i),也就是从n个物品中任选i个的选法

from functools import lru_cache

使用修饰器,增加用来记忆中间结果的缓存

@lru_cache(maxsize=64)
def cni(n,i):
if ni or i0:
return 1
return cni(n-1,i) + cni(n-1,i-1)

print(cni(5, 2))

1.3位置参数

def add(a,b):
print(‘In function:a={},b={}’.format(a,b))
return a+b

print(add(3, 5))

# 1.4 默认值参数

def add(a, b=5):
print(‘In function:a={},b={}’.format(a,b))
return a+b

print(add(3))
print(add(3,8))

# 1.5 关键参数

def add(a,b):
print(‘In function:a={},b={}’.format(a,b))
return a+b
print(add(b=8, a=3))

# 1.6 可变长度参数

def add(a, b, *args, **kwargs):
print(‘In function:\\na={}\\nb={}\\nargs={}’.format(a,b, args, kwargs))
return a+b+sum(args)+sum(kwargs.values())

print(add(3, 8, 1, 2, 3, 4, x=5, y=6, z=7))
print(’=’*20)
print(add(1, 2, 3, 4, 5, 6, 7, 8, 9, x=10, y=11))

2.1 变量作用域

#def func():
global x
x = 666
y = 888
print(x, y, z, sep=’,’)

x, y, z = [3, 5, 7]
func()

3.1 使用递归法计算自然数各位数字之和

def digitSum():
if n ==0:
return 0
# 先计算除最后一位的其他位之和
# 再加上最后一位
return digitSum(n//10) + n%10

函数小练习

1

.编写一个函数calcluate,可以接收任意多个数,返回的是一个元组 #元组的第一个值为所有参数的平均值,第二个值大于平均值的所有数

def calculate(*args):
ave = sum(args) / len(args)
up_num=[]
for i in args:
if i > ave:
up_num.append(i)
return ave, up_num
print(calculate(1, 2, 3, 4, 5))

编写一个函数,接收字符串参数,返回一个元祖,‘hello,WORLD’ #元组的第一个值为大写字母的个数,第二个值为小写字母个数

def fun(x):
upper_count = 0
lower_count = 0
for item in x:
if item.isupper():
upper_count+=1
elif item.islower():
lower_count+=1
else:
continue
return upper_count,lower_count
print(fun(‘hello WORLD’))

编写函数,接收一个列表(包含30个整形数)和一个整形数k,返回一个新列表 #函数需求: 1.将列表下标k之前对应(不包含k)的元素逆序 2.将下标k及之后的元素逆序 3.[1,2,3,4,5]2[2,1,5,4,3]

list = []
def fun(new_list, k):
if k <0 or k >len(new_list):
return ‘error’
return new_list[:k][::-1] + new_list[k:][::-1]
print(fun([1,2,3,4,5],2))

4

.用函数实现100-200里面的所有的素数

def test(num):
list = []
i = num - 1
while i > 1:
if num % i ==0:
list.append(i)
i -= 1
if len(list) == 0:
print(num, end=’ ')

def test2(start_num, stop_num):
j = start_num
while j < stop_num:
test(j)
j += 1
test2(100, 200)
print(’’)

**

5.模拟转盘抽奖游戏

**

#转盘分为三部分:一等奖,二等奖和三等奖
#转盘转的时候是随机的
#如果范围在[0,0.08)之间,代表一等奖
#如果范围在[0.08,0.3)之间,代表二等奖
#如果范围在[0.3,1.0)之间,代表三等奖
#模拟本次活动1000人参加,模拟游戏是需要准备各等级奖品的个数

import random
#print(random.random())
rewardDict = {
‘一等奖’:(0,0.08),
‘二等奖’:(0.08,0.3),
‘三等奖’:(0.3,1)
}

def rewardFun():
“”"“用户的得奖等级”""
# 生成一个0~1之间的随机数
number = random.random()
# 判断随机转盘是几等奖
for k,v in rewardDict.items():
if v[0] <=number <=v[1]:
return k
#print(rewardFun())

resultDict={}
for i in range(1000):
res = rewardFun()
if res not in resultDict:
resultDict[res] = 1
else:
resultDict[res] +=1

for k,v in resultDict.items():
print(k,’---->’,v)


学习时间:

可以添加计划学习的时间
例如:
1、 周一至周五晚上 7 点—晚上9点
2、 周六上午 9 点-上午 11 点
3、 周日下午 3 点-下午 6 点

这样可以更加有动力持续地学习.


总结:

   我一开始也和很多人一样,来一题做一题。做一题,下一题又不会了。感觉进度很慢,而且感觉没有什么进步和积累。但是练的多了,就容易养成一种编程的思维,就变得简单了.
   对于代码能力,我们可以选择一些简单的题目或者是我们做过的题目,稍微整理一下思路(不会的先看别人的题解,理解思路消化一下),然后开始写代码。

   **慢慢来,take it easy!!!!
   如果您觉得这篇文章有帮助,麻烦点个赞**加粗样式**再走哈,谢谢!!!!!****

以上是关于Python代码练习1的主要内容,如果未能解决你的问题,请参考以下文章

Python3练习题系列(03)

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

如何在 python 中并行化以下代码片段?

Python练习代码

python+spark程序代码片段

常用python日期日志获取内容循环的代码片段