python编程学习笔记(三)

python基础(一)

  • 基本数据类型
    数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值
  • 变量名的命名规则
  1. 大驼峰:MyName
  2. 小驼峰:myName
  3. 下划线:my_name

整数和小数

  • 整数 : 所有整数 例如 : a = 1 b = 100 c =999 都是int类型
a = 18    # a的类型就是整型
# int()    # 可以将有数字的其他类型转换成整型
b = int('46')    # 将字符串'46'转换成整型46
  • 小数常量 : 所有小数 例如 a = 1.2 b=6.66 用float类型表示

布尔值和空值

• 布尔: 只有2个值一个是True 一个是False

• None常量:只有一个数值就是None 也就是空值

字符串

什么是字符串

字符串是由数字、字母、下划线组成的一串字符
• 注意
• 单引号或双引号不能混合使用
• Python中用一对双引号或者一对单引号包裹的内容就是字符串

转义字符

• 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符
• 总结
• \t 表示制表符
• \n 表示换行符
• \ 表示反斜杠
• ’ 表示 ’
• \ ‘’ 表示 ‘’

print('亲爱的lawlietboss:\n    请点击此链接激活用户:激活用户')
# 转义字符: \t  制表符(Tab) \'   \"   \r(回车)
# 单双引号可嵌套使用,但不能同单或同双嵌套
print('乔治说:\'我想吃冰淇淋!!\'')
print("乔治说:'我想玩恐龙!!'")
print('乔治说:"我想睡觉!!!"')

print('hello\py\thon')
print('hello\py\\thon')		#双\\表示转义成一个\
print(r'hello\py\thon')		# r 表示原样输出,不进行转义

长字符串

• 长字符串 又叫做文档字符串 我们使用三重引号来表示一个长字符串’’’ ‘’’
• 三重引号可以换行,并且会保留字符串中的格式

格式化字符串

• 第一种格式化字符串 拼串

s1 = 'abc'
s2 = 'defg'

s3 = s1 + s2   # 相当于拼接
print(s3)    # abcdefg

s4 = s1 *5		# 重复5遍s1的内容
print(s4)    # abcabcabcabcabc

• 第二种格式化字符串 参数传递

name = 'Lilei'
print('我的名字是', name)    # 我的名字是 Lilei

• 第三种格式化字符串 占位符

  1. %s 字符串占位
# %s 字符串的格式化
name = 'steven'
print('%s说:%s' % (name,"大家好好学习!"))
  1. %f 浮点数占位
# %f 保留小数点后的位数,且四舍五入,不加小数点保留6位小数
salary=8899.35678
print('我的薪水是:%.1f' % salary)     # 保留1位小数
print('我的薪水是:%3.3f' % salary)     # 保留3位小数
print('我的薪水是:%.0f '% salary)	  # .0f 四舍五入保留整数部分

• %d 整数占位

# %d digit 标志数字,用%d占位,输出的是数值型
age = 20
print('年龄是:%d' % age)    # 年龄是:20

# %d---> int(变量) 取整数
age = 18.5
print('年龄是:%d' % age)	# 年龄是:18

year = 2020
print('今年是:%02d' % year)    # 今年是:2020

• 第四种格式化字符串 f’{变量}’

movie = '大侦探皮卡丘'
ticket= 45.9
count = 35

print(f'电影:{movie}\n人数:{count}\n单价:{ticket}\n总票价:{ticket*count}' )
'''
电影:大侦探皮卡丘
人数:35
单价:45.9
总票价:1606.5
'''

• str.format ()

name = '乔治'
age = 3
hobby = '玩恐龙!'
message = '{}今年{}岁,最喜欢{}'.format(name,age,hobby)
print(message)    # '乔治今年3岁了,最喜欢玩恐龙!'

字符串切片

s = 'picture.png'
print(s[3])		#获取filename中第3个字母(从0开始)
print(s[0:7])    #------>picture
# 省略
print(s[3:])    #省略后边就取后边所有
print(s[:7])    #省略前边就取前边所有(从0开始)

print(s[:])    # 等于 filename

print(s[8:-1])    # 这里的-1表示倒数第1位,-2表示倒数第2位....
print(s[-5:-1])

#[::]  第二个冒号后的数表示步长step,为负数时表示倒序
print(s[::-1])    

s1 = 'abcdefg'
print(s1[::-1])  # 逆向输出,双冒号后边的-1表示倒序
print(s1[-1:-5:-1])  #包含-1不包含-5
print(s1[5:0:-1])

字符串的其他操作

• len() 字符串的长度

s = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
# len(s)   返回整型,求字符串s的长度
print(len(s))    # 62

• max() 最大值

s = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
print(max(s))    # z

• min() 最小值

s = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
print(min(s))    # 0

• split()分割字符串

'''
我们可以使用 split() 分割任意字符串,
split() 允许有一个参数,
用来指定字符串以什么字符分隔(默认为 " "),
它返回一个包含所有分割后的字符串的列表

'''
s = "We all love Python"
print(s.split())
# ['We', 'all', 'love', 'Python']
x = "shiyanlou:is:waiting"
print(x.split(':'))
# ['shiyanlou', 'is', 'waiting']

• join()拼接字符串

'''
方法 join() 使用指定字符连接多个字符串,
它需要一个包含字符串元素的列表作为输入
然后连接列表内的字符串元素
'''
s = 'abc'
new_s = '-'.join(s)
print(new_s)    # a-b-c

• find()查找字符串

s1 = 'index lucy lucky goods'

# find('要查找的字符',start,end) 
# 返回第一个索引位置,没有时返回-1
position = s1.find('R')
print(position)  # -1

position = s1.find('l')
print(position)

• replace() 替换字符串

s1 = 'index lucy lucky goods'
s2 = s1.replace(' ','#')  #将空格替换成#
print(s2)

s3 = s1.replace(' ','',2)  # 将空格去掉,最多替换2次
print(s3)

• partition() 把字符串分割为三部分

# .partition()    将参数前后和参数本身分成三部分
s1 = 'index lucy lucky goods'
s2 = s1.partition("lucky")
print(s2)    # ('index lucy ', 'lucky', ' goods')
print(type(s2))    # s2是一个元组类型
去空格

• s.strip() 左右两边去空格
• s.lstrip() 去左边空格
• s.rstrip() 去右边空格

s = '      hello       '
sl = s.lstrip()  # 去除s左侧的空格
sr = s.rstrip()  # 去除s右侧的空格
ss = s.strip()   # 去除两侧的空格

print(s+'8')    # |      hello       8
print(sl+'8')   # |hello       8
print(sr+'8')   # |      hello8
print(ss+'8')   # |hello8
字符串大小写
  • s.upper() 全部大写
s = "shi yan lou"
z = s.upper()
print(z)
#'SHI YAN LOU'
  • s.lower() 全部小写
s = "SHI YAN LOU"
print(s.lower())
#'shi yan lou'
  • s.title() 首字母大写
s = "shi yan lou"
print(s.title())
#'Shi Yan Lou'
  • s.swapcase() 大小写交换
s = "I am A pRoGraMMer"
print(s.swapcase())
#'i AM a PrOgRAmmER'
  • s.isupper() 判断是不是大写
s = "CHINA"
print(s.isupper()) # 检查字符串是否所有字符为大写
# True
  • s.islower() 判断是不是小写
s = "ShiYanLou is coming"
print(s.islower()) # 检查字符串是否所有字符为小写
# False

下面是本节课的作业内容

在这里插入图片描述

作业1 a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

# 方法一:
a, b = 6, 8
a, b = b, a
print('a =', a, ', b =', b)

# 方法二:
a, b = 6, 8
a += 2
b -= 2
print('a =', a, ', b =', b)

作业2 完成字符串的逆序以及统计

• 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
• 打印出字符串长度
• 使用切片逆序打印出字符串

while True:
    s1 = input("请输入字符(长度小于31):")
    if len(s1) < 31:
        print("您输入的字符长度是:{}\n您输入字符的逆序为:{}".format(len(s1), s1[::-1]))
        break
    else:
        print("输入太多,重新输入!")

作业3 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入

• 用户名长度6-20,用户名必须以字母开头
• 密码长度至少6位,不能为纯数字,不能有空格

# 用户名:
user_name = input("请输入用户名(长度6-20位,必须以字母开头):")
while True:
    if len(user_name) >= 6 and len(user_name) <= 20:
        if user_name[0].isalpha():
            break
        else:
            user_name = input("必须以字母开头,请重新输入用户名:")
    else:
        user_name = input("用户名长度在6-20位,请重新输入用户名:")

# 密码:
user_password = input("请输入密码(长度不少于6位,不能为纯数字,不能有空格):")
while True:
    if len(user_password) >= 6:
        if user_password.isdigit():
            user_password = input("密码不能为纯数字,请重新输入密码:")
        else:
            if user_password.find(" ") == -1:
                break
            else:
                user_password = input("密码不能有空格,请重新输入密码:")
    else:
        user_password = input("密码长度至少6位,请重新输入密码:")

print('''输入完成!
您的用户名是:{0}
您的密码是:{1}'''.format(user_name, user_password))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值