自学Python所记(四)

9.4、作业

1、字符串和数字之间不能比大小,但可以判断是否相等(一定不相等)

2、在 判断中使用or的时候,后边的判断条件一定写全,不能只写一个数据值

数字来说:0是 False,其余全是True,对于字符串来说,空字符串’’,是False

# 用户输入年龄,如果年龄超过60岁,输出:可以退休了
user_age = int(input('请输入年龄'))
if user_age > 60:
    print('可以退休了')

# 用户输入年龄,判断用户处于哪个年龄阶段
# 0-17为青少年,18-35为青年,36-59为中年,60-99为老年
age = int(input("请输入年龄"))
if (age>0) and (age<=17):
    print('青少年')
elif (age>17) and (age<=35):
    print('青年')
elif (age>35) and (age<=59):
    print('中年')
else:
    print('老年')
# 制作用户登录系统,已知A用户注册的用户名为aaa,密码是123456.
# 具体要求如下:登陆时需要验证用户名、密码、验证码(固定验证码为qwer).
# 提示:系统先验证验证码是否正确,正确后再验证用户名和密码
user = input('请输入用户名')
pwd = input('请输入密码')
code = input('请输入验证码')
if code == 'qwer':
    print('验证码正确')
    if user=='aaa' and pwd=='123456':
        print('用户名正确')
    else:
        print('用户名错误,请重新输入')
else:
    print('验证码错误,请重新输入')

# 1-7个数字,分别代表周一到周日
# 如果输入数字是6或7,输出周末,否则输出工作日

day = int(input('请输入1-7任意数字'))
if day == '6' or day == '7':
    print('周末')
else:
    print('工作日')
# 猜数字游戏
# 电脑产生一个(1-100)的随机数,用户进行猜测(通过input输入),直到猜中
# 如果猜对了,输出:恭喜你猜对了,数字是xx
# 如果猜的数字比随机数大,输出:猜测的数字太大了,继续加油
# 如果猜测的数字比随机数小,输出:猜测的数字有点小,再来一次
import random
num = random.randint(1,100)
while True:
    my_num = int(input('请输入一个数字'))

    if my_num == num:
        print(f'恭喜你猜对了,数字是{num}')
        break
    elif my_num > num:
        print('猜测的数字太大了,再来一次')
    elif my_num < num:
        print('猜测的数字太小了,再来一次')

9.5、for循环

  • for循环可以遍历容器中的数据(

    ​ 遍历:从容器中把数据一个一个取出来

    ​ 容器:可以简单理解为盒子,盒子可以存放很多数据(字符串str,列表list,元组tuple,字典dict))

  • for循环 也可以称为for遍历

9.5.1、基本for循环

语法:

for 变量名 in 容器:

	重复执行代码

# 1、for 和 in都是关键字
# 2、容器中有多少数据 ,循环就会执行多少次
# 3、每次循环,会将容器中数据取出一个 保存到in关键字前面的变量中
# 定义字符串
my_str = 'hello'
# 遍历字符串 # 字符串中有五个字符,循环就会执行5次
for i in my_str:  # 每次循环i的值为字符串中的字符
    print('喜欢你', i)

9.5.2、for做指定次数的循环
for 变量 in range(n):
    重复执行
# 1. range() 是python中的函数,作用使用可以生成[0,n]之间的整数,不包含n的,一个有n个数字, 所以这个循环循环n次
# 2.想让for循环几次,n就写几
# 3.变量的值 也是每次循环从[0,n)取出一个值,第一次取得是0,最后一次取得是n-1
for i in range(5): # [0,1,2,3,4]
    print(i)
    
    
print('-'*25)  #---------------- 生成25个—
  • range() 变形

for 变量 in range(a,b)
	重复的代码
# range(a,b) 作用是生成[a,b)之间的整数数字,不包含b



# 需求:使用for循环获取5到10之间的数字
for m in range(5,11):
    print(m) # 5,6,7,8,9,10
9.5.3、break和continue
break和continue是python中的关键字,只能在循环中使用

break:终止循环,即代码执行遇到break,循环不在执行,立即结束
continue:跳过本次循环。即代码执行遇到continue,本次代码剩下的代码不再执行,继续下一次循环
# 1、获取你输入的字符串
result = input('请输入字符串')
# 2、遍历打印这个字符串
for i in result:
    # 3、在遍历的时候,如果这个字符是e,不打印
    if i =='e':
        continue # 本次循环后续的代码不执行,执行下一次代码
    print(i)

可替换:    
print('-'*27)
for i in result:
    if i!= 'e':
        print(i)

十、数据序列(容器)

容器:可以称为数据序列,或者高级数据类型
容器中可以存放多个数据

10.1、字符串定义

字符串是容器,因为字符串可以包含多个字符

使用引号(单引号,双引号,三引号)引起来

# 1.使用单引号定义
my_str1 = 'hello'
print(my_str1,type(my_str1))
# 2.使用双引号定义
my_str2 = "hello"
print(my_str2,type(my_str2))

# 3.使用三引号定义
my_str3 = '"hello"'
print(my_str3,type(my_str3))

# 4、字符串本身包含引号 I’m  小明
# 4.1 字符串本身包含单引号,则在定义时候不能使用单引号
# 4.2 字符串本身包含双引号,则在定义的时候不能使用双引号
my_str5 = "I'm 小明"
print(my_str5)

# 5.字符串本身包含单引号,在定义的时候,使用单引号
# 5.1 使用\转义字符,将字符串本身的引号进行转义 \'--->' \"--->"
my_str6 = 'I\'m 小明'
print(my_str6)

# 5.2 字符串 'I\'m 小明'
my_str7 = 'I\\\'m 小明'
print(my_str7)

# 5.3 字符串前面加上r"" 原生字符串,字符串中的\不会作为转义字符
my_str8 = r'I\'m 小明'
print(my_str8)

my_str9 = r'I\\\'m 小明'
print(my_str9)


10.2、字符串下标

下标(索引):指字符在字符串中的位置编号,这个编号一般从左到右进行编号,从0开始的(python中支持附属下标,从右到左进行编号,从-1开始)
下标作用:可以使用下标获取字符串中某个位置的字符

语法:

字符串[下标] #获取指定位置的字符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vf8g7F2U-1649943151406)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1649940197080.png)]

str1 = 'abcdefg'

# 1.打印字符串中最开始位置的字符
print(str1[0])  # a

# 2.打印最后一个位置的数据
print(str1[-1])  # g

# 3.打印倒数第二个位置的字符
print(str1[-2])  # f

# 打印下标为2的数据
print(str[2])  # c


  • 字符串长度:
# 获取字符串中字符的个数(获取字符的长度)
# len(字符串)
num = len(str1)
print(num)

# 长度-1的下标位置是最后一个字符
print(str1[num - 1])  # 最后一个字符,倒数第一个、
print(str1[len(str1) - 1])  # 最后一个字符,倒数第一个

10.3、字符串切片

切片:可以获取字符串中多个字符(多个字符的下标是有规律的,等差数列)

语法:

字符串[start:end:step]
start是开始位置的下标,end是结束位置的下标(注意,不能取到这个位置的字符)
step步长,等差数列的差值,所取的相邻字符下标之间的差值,默认是1,可以不写
例:[1:5:1] # 1 2 3 4
   [1:5:2] # 1 3
   [1:5:3] # 1 4
   [1:5:4] # 1
  • 获取abc
# 切片会得到一个字符串,即可以获取字符串中的多个字符

str1 = 'abcdefg'

# 1 获取abc字符

print(str[0:3:1])  # abc

# 如果步长是1可以不写,最后一个冒号也不写

print(str1[0:3])  # abc

# 如果开始位置为0,可以不写,但冒号必须有

print(str1[:3])  # abc
  • 获取efg
# 获取efg字符
print(str1[4:7])  # efg
print(str1[-3:7])  # efg
# 如果最后一个字符也要取,可以不写,但是冒号必须有
print(str1[4:])  # efg
# 如果开始和结束都不写,获取全部内容,但冒号必须有
print(str1[:])  # abcdefg
  • 获取aceg
# 获取aceg # 下标0 2 4 6,所以步长为2
print(str1[0:7:2])  # aceg
print(str1[::2])  # a c e g
  • 反转
# 特殊应用,步长为复数,开始和结束不写,意思全变,只有一种使用场景
# 反转(逆置)字符串  字符串[::-1]
print(str1[::-1])  # gfedcba
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值