python基础(一)
- 基本数据类型
数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值 - 变量名的命名规则
- 大驼峰:MyName
- 小驼峰:myName
- 下划线: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
• 第三种格式化字符串 占位符
- %s 字符串占位
# %s 字符串的格式化
name = 'steven'
print('%s说:%s' % (name,"大家好好学习!"))
- %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))