day02



# 代码格式化(ctrl+alt+L)
# 多行注释 (ctrl+/)

input 函数

python可以在运行过程中接收用户的键盘输入数据
input()函数接收用户输入的值结果都是字符串类型
数据类型的转换 目标数据类型(要转的变量)
例:age=input('请输入年龄')
age = int(age)
# 带有特殊含义的转义字符
# \n 换行符
# \t tab键 python中默认是4个空格

算数运算符

+ - * / 除结果为float类型
% 取余 
** 次方幂 
// 整除,取整数部分,无四舍五入

比较运算符

== > < >= <= !=

赋值运算符

= += -= *= /= %= **= //=

逻辑运算符

# and 有False则False
# or 有True则True
# not 将True变成False,将False变成True
其中 and的计算优先级比or要高一个等级,先计算and,可以使用小括号来改变运算的顺序
空字符串转bool类型的时候是False 
当浮点数为0.0转bool类型的时候是False
当int类型为0转bool类型的时候是False
None转bool类型的时候也是False
# isinstance() 判断某个值是否是某个数据类型
b = 'a'
print(isinstance(b, int))
输出为False

if选择语句

if 判断条件表达式(bool类型的结果):
   if语句体

输出结果

if语句另外一种格式:两个选择
gender='女'
if gender == "男":
    print("请去男厕所")
else:
    print("请去女厕所")

 输出结果:

if语句多分支情况

score = int(input("请输入您的分数:"))
if 0 <= score < 60:
    print("不及格 棍棒伺候")
elif 60 <= score < 80:
    print("良好  奖励试卷一份")
elif 80 <= score <= 100:
    print("优秀 肯德基")
else:
    print("您输入的分数有误!!")

输出结果:

 例:需求:比较3个数中的最大值(if嵌套,今后开发中if的嵌套最多不要超过4层)

a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
c = int(input("请输入第三个数字:"))
if a > b:
    if a > c:
        print(f"三个数中最大值为:{a}")
    else:
        print(f"三个数中最大值为:{c}")
else:
    if b > c:
        print(f"三个数中最大值为:{b}")
    else:
        print(f"三个数中最大值为:{c}")

输出结果:

 for 循环

for 变量名 in 序列:
    循环体语句
range(i,j)取值范围[i,j)
range(i,j,k)取值范围[i,j),k代表步长

break 结束所有循环     continue 结束此次循环   exit() 强制退出python程序

for ......else.....格式

当循环正常结束才执行else里的语句 类似的还有while......else......

while循环

语句定义格式:
while 循环的条件:
    循环体内容

字符串

字符串通俗的理解:由一个签子把一个一个字符串起来的串儿,叫字符串,每个字符的位置也就定下来了。
# 专业的理解:
#     1、字符串是由零个或者多个字符串组成字符序列 "abcdefghi"  在python中使用双引号或者单引号都可以叫做字符串
#     2、字符串具有不可变,有索引,可切片,可遍历的特点。
#     3、一切字符串皆为对象 类
# 字符串中的方法:
#     1、格式化分类方法
#     2、判断方法
#     3、查找,修改,计数,替换方法
#     4、特殊方法
s = "reynolds shujiakeji   "
s1 = "SHUJIAKEJI"
print(s.capitalize())  # 将首字母大写
print(s.center(50, "*"))  # 将字符串放到中央,不够的部分使用自己字符串填充
print(s.ljust(50, "*"))  # 将字符串放到左边,右边不够的部分使用指定字符串填充
print(s.rjust(50, "*"))  # 将字符串放到右边,左边不够的部分使用指定字符串填充
print(s.upper())  # 将所有字母转大写
print(s.lower())  # 将所有子没有转小写
print(s.strip())  # 去除字符串两边的空格
print(s.lstrip())  # 去除字符串左边的空格
print(s.rstrip())  # 去除字符串右边的空格

运行结果

s = "reynolds shujiakeji   "
print(s.strip().startswith("rew"))  # 判断字符串是否以某小字符串开头
print(s.strip().endswith("keji"))  # 判断字符串是否以某小字符串结尾
s='9'
print(s.strip().isalnum())  # 判断字符串中内容是否是数字含义
print(s.strip().isalpha())  # 判断是否是字母
print(s.strip().isdigit())  # 判断是否是数字
print(s.isspace())  # 判断是否是空格

 运行结果

查找,修改,计数,替换方法
s = "ab cde fgch i"
print(s.find("z"))  # 只会找第一次出现的位置 3 ,如果不存在,返回-1
print(s.find("c", 5))
print(s.rfind("c"))  # 从右边找第一次出现的位置
#print(s.index("z")) # 只会找第一次出现的位置 3 ,如果不存在,会报错,这句话报了错
print(s.count("c"))  # 求小字符串在大字符串中出现的次数
print(s.split(" "))  # 以指定的分隔符进行切分

运行结果:

s = '''
hello world
linux
mysql
hadoop
hive
spark
flink
...
'''
print(s.splitlines())  # 以换行符作为分割条件
s = "ab cde fgch i"
print(s.replace("c", "|")) #替换s里的"c"为"|"
print(s.title())
print(len(s)) # 查看字符串的长度

 运行结果

 s[i],输出s中第i个元素

字符串变量[索引]:取出对应索引位置的字符

for i in s:
    print(i)

今日作业: 

# 需求1:打印楼层,当打印到202的时候,跳过202,直接打印后面的楼层
for i in range(1, 5):  # 行数
    for j in range(1, 5):
        if i == 2 and j == 2:
            continue  # 结束当次循环
        print(f"您现在处于{i}0{j}室", end=" ")
    print()

# 需求2:求1-100之间的奇数和偶数 与2进行取余。。。1(奇数)
for i in range(1, 101):
    if i % 2 == 1:
        print(f"{i} 是奇数")
    else:
        print(f"{i} 是偶数")

# 需求3:打印5行5列的*
# * * * * *
# * * * * *
# * * * * *
# * * * * *
# * * * * *

for row in range(5):
    for col in range(5):
        print("*", end=" ")
    print()

#打印99乘法表
for i in range(1, 10):  # [1,2,3,4,5,6,7,8,9]
    for j in range(1, i + 1):  # [1,2,3,4,5,6,7,8,9]
        print(f"{i}*{j}={i * j}", end=" ")
    print()

# 需求5:判断一个数是否是素数(质数)  1-100
# 提供标志位的开发思想
# 什么是素数?只能被1和自身整除的数叫素数 1,3,5,7,11...
for i in range(2, 101):  # i=9
    flag = True
    for j in range(2, i):
        if i % j == 0: # 如果能够被整除,就说明i这个数字不是素数
            flag = False
            print(f"数字{i}不是素数")
            break
        # else:
        #     print(f"数字{i}是素数")
    if flag:
        print(f"数字{i}是素数")
# 使用for...else改进判断是否为素数
for i in range(2, 101):  # i=9
    for j in range(2, i):
        if i % j == 0:  # 如果能够被整除,就说明i这个数字不是素数
            print(f"数字{i}不是素数")
            break
    else:
        print(f"数字{i}是素数")
# 作业1:求1-2+3-4+5-6+7-8....100的结果
count = 0
for i in range(1, 101):
    if i % 2 == 1:
        count += i
    elif i % 2 == 0:
        count -= i
print(f'1-2+3-4+5-6+7-8....100={count}')

# 作业2:随机输入一串字符串,判断其中数字字符的个数,字母字符的个数,特殊符号的字符个数,空格的个数。
s = input("请输入一串字符串")
num_count = 0
word_count = 0
sign_count = 0
space_count = 0
for i in s:
    if i.isdigit():
        num_count += 1
    elif i.isalpha():
        word_count += 1
    elif i.isspace():
        space_count += 1
    else:
        sign_count += 1
print(
    f"该字符串中数字字符的个数为{num_count},字母字符的个数为{word_count},特殊符号的字符个数{sign_count},空格的个数{space_count}")

'''
    作业3:即将过年,公司一般都会年会,抽奖,假设公司有300个员工
        一等奖3名:iphone14 pro+三亚一周旅行
        二等奖6名:ipad平板
        三等奖30名:按摩仪一个
    规则:
        共抽三次,第一次抽三等奖,第二次抽二等奖,第三次抽一等奖
        每个员工仅限中奖一次,不能重复

    提示:随机使用random库
'''

import random
staff = []
third_grade = []
second_grade = []
first_grade = []
for i in range(1, 301):
    staff.append('职员' + str(i))
third_grade = random.sample(staff, 30)
for i in third_grade:
    staff.remove(i)  # 删除得到三等奖的人
second_grade = random.sample(staff, 6)
for i in second_grade:
    staff.remove(i)  # 删除得到二等奖的人
first_grade = random.sample(staff, 3)
for i in first_grade:
    staff.remove(i)  # 删除得到一等奖的人
print("\n得到三等奖的人有:")
for j in third_grade:
    print(f'{j}',end=' ')
print("\n得到二等奖的人有:")
for j in second_grade:
    print(f'{j}',end=' ')
print("\n得到一等奖的人有:")
for j in first_grade:
    print(f'{j}',end=' ')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值