大数据分析综合实习day02

rt_01_分支嵌套案例.py

#分支嵌套
#需求:用户键盘录入年份和对应的月份,输出当前年份,月份对应的天数
#分析:当输入2月份时需要单独判断平年(28天)还是闰年(29天)
#31天对应的月份:1,3,5,7,8,10,12
#30天对应的月份:4,6,9,11
year=eval(input("请输入您要查看的年份:"))
month=eval(input(f"请输入您要查看{year}对应的月份:"))

#判断月份
if month in [1,3,5,7,8,10,12]:
    day=31
    print(f"年份:{year},月份:{month},天数:{day}")
elif month in [4,6,9,11]:
    day=30
    print(f"年份:{year},月份:{month},天数:{day}")
elif month==2:
    #嵌套if语句,单独判断平年还是闰年
    if (year % 4 == 0 and year % 100 != 0) or year % 400 ==0:
        day=29
        print(f"年份:{year}是闰年,月份:{month},天数:{day}")
    else:
        day=28
        print(f"年份:{year}是平年,月份:{month},天数:{day}")

输出:

 rt_02_循环结构.py

#循环结构:while循环和for循环,还有循环中的else结构


#while循环:
#死循环
#while True:
#    print("hello python!")

#使用while循环必须满足三个条件
#1、定义初始化循环变量,定义可以统计循环次数的变量
num = 1
#2、判断循环条件
while num <= 10:
    print("hello python!")
#3、需改循环条件
    num += 1


#求100以内的偶数和(包含100)
a = 0
sum = 0
while a <= 100:
    if a % 2 == 0:
        #做累加
        sum += a
    a += 1
print(f"100以内的偶数和为:{sum}")

print("*"*50)
num=0
sum=0
while num<=100:
    sum+=2
print(f"100以内的偶数和为:{sum}")

输出:

rt_03_求100以内的水仙花数.py

#求1000以内的水仙花数
#已知水仙花数是一个三位数(100-999)
#满足水仙花的数字的各位数字的立方+十位数字的立方+百位数的立方=本身
#153 = 1**3 + 5**3 + 3**3
num=100
while num <= 999:
    ge = num % 10
    shi = num // 10 % 10
    bai = num //100
    if ge**3 + shi**3 + bai**3 == num:
        print(f"水仙花数是:{num}")
    num += 1

输出:

rt_05_for循环.py

#for循环
#range(stop):默认从1开始到stop结束,左闭右开区间
#range(start,stop),左闭右开
#range(start,stop,step),step默认是1,左闭右开
for num in range(10):
    print("hello python!",num)

#求1000以内的水仙花数
import math
for num in range(100,1000):
    ge = num % 10
    shi = num // 10 % 10
    bai = num // 100
    if math.pow(ge,3) + math.pow(shi,3) + math.pow(bai,3) == num:
        print("水仙花数:",num)

输出:

rt_05_循环嵌套.py

#循环嵌套
#输出一个三角形
# *
# * *
# * * *
# * * * *
# * * * * *

#外层循环控制行
row = 1
while row <= 5:
    #内层循环控制列
    col = 1
    while col <= 5:
        print("*",end="\t")
        col += 1
    print("")
    row += 1

print("*"*50)
#外层循环控制行
row = 1
while row <= 5:
    #内层循环控制列
    col = 1
    while col <= row:
        print("*",end="\t")
        col += 1
    print("")
    row += 1

print("*"*50)
#九九乘法表
for row in range(1,10):
    for col in range(1,row+1):
        print(f"{row}*{col}={row*col}",end="\t")
    print("")

输出:

rt_06_循环中的else结构.py

#循环中的else结构
# 循环正常结束时执行了else结构
# 循环中断时,

for num in range(10):

    print("hello python",num)
    if num == 5:
        # 中断循环
        break
else:
    print("这是循环中else结构,什么时候执行呢!")

#从学生信息数据库中查询如花同学的信息
name_list = ["张三","李四","如花","王五"]

find_name = input("请输入您要查找学员的名字:")
for name in name_list:
    if find_name == name:
        print(f"查询到了{find_name}的学员信息")
        break
else:
    print (f"您要查询的{find_name}学员信息不存在,请核实!")

输出:

 rt_07_流程控制中的关键字.py

#break、continue、pass
# pass:表示占位,保证结构的完整性
if True:
    pass

# break:中断循环,一般结合if语句
# continue:跳过本次,继续执行后续操作
num = 0
while num < 10:
    num += 1
    if num == 5:
        continue
    print(num)

输出:

rt_08_函数.py

#函数:封装了特定代码块
#作用:减少代码的冗余,提高代码的复用,提高程序的编写效率
#注意:

#定义链接数据库的函数
def get_coon():
    print("开始连接数据库。。。")
    print("开始连接数据库。。。")
    print("开始连接数据库。。。")

#调用函数
get_coon()


#练习
#练习一:打印图形
#1、打印一条横线
def print_line():
    print("-"*20)
print_line()
#2、打印多条横线
def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1
num=eval(input("请输入要打印横线的条数:"))
print_lines(num )

#练习二:函数计算
#1、求三个数之和
def sum_num(a,b,c):
    return a+b+c
result=sum_num(1,2,3)
print(result)

#2、求三个数平均值
def average_sum(a,b,c):
    return (a+b+c)/3
result=average_sum(2,3,4)
print(result)

输出:

rt_09_函数的具体使用.py

# 定义求和函数

def func_sum():
    a = 10
    b = 20
    result = a + b
    print(f"{a}+{b}={result}")
func_sum()


# 定义带有参数的函数
def sum_num(num1, num2):# 形式参数:在定义函数定义的参数,告诉调用者在调用这个函数时需要传递参数
    """
    求和函数:求两个数的和
    :param num1:
    :param num2:
    :return:
    """
    result = num1 + num2
    print(f"{num1} + {num2} = {result}")
    # 返回最终求和结果,可以返回多个
    return result, num2, num1

sum_num(13, 14)# 实际参数:实际参数实质性的运算
print(sum_num(13, 14))

输出:

rt_10_函数中参数的几种表现形式.py

# 函数中参数的几种表现形式
# 1、位置参数
# 2、关键字参数
# 3、缺省参数
# 4、可变长参数


#位置参数:按照参数定义的位置依次传入
def stu_info(name,age,address):
    print(f"name:{name},age:{age},address:{address}")

stu_info("如花",18,"山东日照")
stu_info(18,"山东青岛","张三")


#关键字参数:进行输出:以形式参数赋值的形式传值
stu_info(age=19,address="山东青岛",name="似玉")


# 缺省参数:在定义函数时,给参数一个默认值
# 再使用时,缺省参数可以省略,省略时执行默认值
# 如果不省略,转入新的值,会覆盖默认值,执行新的值


# 函数中参数的几种表现形式
# 1,位置参数
# 2,关键字参数
# 3.缺省参数
# 4,可变长参数


def stu_info(name, age, address):
    print(f"name:{name}, age:{age}, address:{address}")

# 位置参数:按照参数定义的位置依次传入
stu_info("如花", 18, "山东日照")
# stu_info(18, "山东青岛", "张三")

# 关键字参数:通过“键=值”形式加以指定。可以让函数更加清晰
# 同时也消除了参数的顺序需求,以形式参数赋值的形式传值
stu_info(age=18, address="山东青岛", name="如花")


# 缺省参数:在定义函数时,给参数一个默认值
# 再使用时,缺省参数可以省略,省略时执行默认值
# 如果不省略,转入新的值,会覆盖默认值,执行新的值
def sum_num(a, b, c=100):
    result = a + b + c
    print(f"{a} + {b} + {c} = {result}")

sum_num(11, 22)
sum_num(11, 22, 33)


def get_info(name, age, gender=True):
    gender_text = "男生"
    if not gender:
        gender_text = "女生"
    print(f"name:{name}, age:{age}, gender:{gender_text}")

get_info("小明",18)
get_info("小花", 18, gender=False)


# 可变长参数
# args:可变长参数, 表示元组类型
# kwargs:可变长参数, 表示字典类型
def test(num, *args, **kwargs):
    '''
    :param num:
    :param args:
    :param kwargs:
    :return:
    '''
    print("num--->", num)
    print("args--->", args, type(args))
    print("kwargs--->", kwargs, type(kwargs))


test(100)
test(11, 22, 33, 44, 55)
test(11, 22, 33, name="如花", age=18)

tuple1 = (100, 200)
dict1 = {"11": 100, "22": 200}

# 拆包
test(111, *tuple1, **dict1)

输出:

rt_11_list列表.py

# 列表:list,可以存储多种不同数据类型的序列
# 定义:[],
# 特点:可变的数据类型(增删改查),有序的

num_list = [11, 22, 33, "如花", True, 3.14, 33]
list1 = list(range(10))

print(num_list, type(num_list))
print(list1, type(list1))

# 查看列表的长度
print(num_list.__len__(), len(num_list))

# 通过dir函数查看list中封装的对自己进行操作的函数
print(dir(num_list))
# 'append', 'clear', 'copy', 'count', 'extend',
# 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'
# 增删改查
# 查询
# 根据下标查元素
print(num_list[3])
print(num_list[-3])
# 根据元素查下标
print(num_list.index(33))
# 添加
# append:在末尾追加
num_list.append(111)
print(num_list)
# insert:在原有列表的index位置之前插入一个元素
num_list.insert(0, 99)
print(num_list)
# extend:合并
num_list.extend(list1)
print(num_list)

# 删除
num_list.remove(33)
print(num_list)
print(num_list.pop())
print(num_list)

# 修改,重新赋值就是修改
num_list[0] = 999
print(num_list)

# reverse:反转列表
num_list.reverse()
print(num_list)

# sort排序
# num_list.sort()
# 默认是从小到大排列
list1.sort()
print(list1)

list1.sort(reverse=True)
print(list1)



输出:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值