活动地址:CSDN21天学习挑战赛
学习计划
1,学习目标
提示:可以添加学习目标
例如: 一周掌握 Python 入门知识
2,学习内容
提示:可以添加要学的内容
例如:
A,掌握 Python 基本语法
B,掌握 Python 列表、字典、元组等集合类型的用法
C,掌握 Python 函数
D,掌握 Python 常用模块
E, 掌握 Python 模块与包
F,掌握 Python 类与对象
3,学习时间
每天拿出来两个小时
4,学习产出
CSDN技术博客 每天一篇
学习日记
day01 Python的基础语法——变量、数据类型、运算符、流程控制、循环
1.变量
# 案例1
# x = 10
# y = 20
# print(10 + 20)
# print(x + y)
# print(x - y)
# print(x * y)
# print(x / y)
# 案例2
# x = 10
# print(id(x))
# x = 100
# print(id(x))
# 变量命名规范
a1 = 10 # 不能是1a
x = 10
X = 100
# 姓名 = "yuan"
# print(姓名)
# 见名知意
age = 20
firstName = "lin"
secondName = "hu"
first_name = "li"
2.基本语法
# 一 关于注释
# 注释的内容是不被python解释器执行的内容,给人做注解用的 这是一个单行注释
'''
这是一个多行注释!
用三个单引号或者三个双引号区别
'''
# 二 关于语句分割符号
# x = 10;y = 20 # 支持分号作为分隔符,但是不推荐
a = 1
b = 2 # 推荐以换行作为分隔符
# 三 关于缩进 流程控制语句
# 四 pep8规范
c = 20 # control+alt+l : 格式化的快捷方式
def foo():
pass
def bar():
pass
3.整型和浮点型
x = 100
# python内置函数:type: 查看某个数据的类型
print(type(x)) # <class 'int'>
f = 3.1415926
print(type(f)) # <class 'float'>
a = 3.14E3 # 指数表达: E3即 10的三次方
print(a)
4.布尔类型
# 布尔类型 : True False
print(2 == 3) # 返回值即一个布尔值
print(2 < 3) # True
print("yuan" == "yuan") # True
print(type(1 > 2)) # <class 'bool'>
print("1" == 1)
# 零值: 每一个数据类型下都一个布尔为False的值
# 整型的零值:0 字符串的零值:"" 列表的零值是空列表 字典的零值是空字典
# 内置函数: bool
print(bool(1))
print(bool(100))
print(bool(-1))
print(bool(0))
print(bool("False"))
print(bool("0"))
print(bool(""))
print(bool([]))
print(bool({}))
5.字符串类型的基本操作
x = 10
b = True
# 一 创建一个字符串
s = "hello world" # 字符串是用双引号或者单引号标识的
print(s)
# 二 字符串的转义符 \: 1. 将一些普通符号转为特殊符号 ,比如\n 2. 将一些特殊符号转换为普通符号
s2 = 'i\'m yuan! \ni\'m a teacher!'
print(s2)
path = "E:\s32\day02\\next"
print(path)
# 三 长字符串
s3 = " 杜甫 \n白日依山尽 \n黄河入海流"
print(s3)
s4 = '''
杜甫
白日依山尽
黄河入海流
'''
s5 = """
请选择你的操作
1 购买商品
2 结算
3 退出
"""
print(s5)
# 四 字符串的格式化输入
name = "rain"
age = 23
gender = "男"
# 所谓模板或者格式化字符串: 将动态变化的值嵌入到字符串的某个位置中。
# s6 = "姓名 yuan。年龄 22。性别 男。"
# 占位符号 %s:给字符串占位置 %d:给十进制整型数字占位 %f: 给浮点型占位
s6 = "姓名:%s。年龄:%d。性别:%s" % (name, age, gender)
# s6 = "姓名:rain。年龄:23。性别:男"
print(s6)
6.字符串类型的序列操作
s = "hello world!"
# 一个字符串是由若干个字符按顺序构成的
# 序列类型之索引操作: 通过索引获取值 (支持正负索引) 语法格式 数据对象[索引]
print(s[4])
print(s[6])
print(s[-7])
print(s[-1])
# 序列类型之切片操作:切片操作 获取多个值 语法格式 数据对象[开始索引:结束索引:step=1]
# 特点1 左闭右开 顾头不顾尾
# 特点2 :步长默认为为1,即从左向右一个一个的切割
print(s[0:5])
print(s[6:10])
print(s[6:11])
print(s[6:]) # 冒号右边缺省代表取到最后
print(s[:5]) # 冒号左边缺省代表从索引0开始
print(s[:]) # 完整切片
print("s[5:0]:::", s[5:0]) # 符合从左向右
print(s[-5:]) # orld!
print(s[-6:-1]) # world
print(s[-3:-5]) # 结果为空
# 步长参数为正:代表从左向右切割 为负数从右向左切割
# 步长为 -1 : 从右向左一个一个切割
print(":::", s[0:5:1])
print(":::", s[0:5:-1])
print(":::", s[4::-1]) # olleh
print(":::", s[::-1]) # !dlrow olleh
# 步长为 2: 从左向右隔一个取一个
print(":::", s[::2])
# 序列类型之判断操作:in 判断 返回一个布尔值
print("yuan" in "hello yuan")
print("yuan" not in "hello yuan")
print("rain" in "hello yuan")
print("yua" in "hello yuan")
print("yuan hello" in "hello yuan")
# 序列类型之拼接: 拼接 使用 +
s1 = "hello "
s2 = " yuan"
print(s1 + s2)
# 补充
print("*"*100)
7.字符串的内置方法
# 内置方法: 数据对象.方法()
# 字符串内置方法: 字符串数据对象.方法()
# ******************************************** upper方法 lower方法 ********************************************
# 案例1
s = "HELLO"
s_upper = s.upper()
print(s_upper)
print(s)
# 案例2:变量的重新赋值
# s = "hello"
# s = s.upper()
# ******************************************** startswith endswith ********************************************
s1 = "hello yuan"
# ret = s1.startswith("hello") # 返回一个布尔值
ret = s1.endswith("uan") # 返回一个布尔值
print(ret, type(ret)) # True <class 'bool'>
# ******************************************** isdigit: 判断是否是数字字符串 ****************************************
ret1 = 10 + 20
ret2 = "10" + "20"
print(ret1, type(ret1)) # 30 int
print(ret2, type(ret2)) # "1020" str
print("hello".isdigit()) # False
print("100".isdigit()) # True
print("100个".isdigit()) # False
# ******************************************** strip方法:去除两端空格 ************************************************
s2 = " yuan "
ret3 = s2.strip() # 去除两端空格 ”yuan“
print(ret3)
print(ret3 == "yuan")
# ******************************************** 字符串分割:split 字符串拼接join ****************************************
s = "北京,上海,深圳,广州" # []
ret4 = s.split(",") # 将一个字符串转换为一个列表
print(ret4) # ['北京', '上海', '深圳', '广州'] ----> "北京;上海;深圳;广州"
ret5 = "---".join(ret4)
print(ret5) # 北京---上海---深圳---广州
8. 运算符
# 计算运算符
x = 9
print(10 / 3)
print(10 % 4)
print(x % 2 == 0)
# 比较运算符 > < == >= <=
print(2 == "2") # False
print(2 != "2") # True
print(2 > 5) # False
# 赋值运算符 = +=
a = 10
a += 1 # a = a + 1 # 自加一
print(a)
# 逻辑运算符 与运算 and 或运算:or 非运算 not
user = "yuan"
pwd = 123
print(user == "yuan" and pwd == 123) # True
9.输入输出函数
# print("OK")
# name = "yuan"
# age = 22
# print(name)
# print(name,age,sep=",")
# print(111,end=";")
# print(222)
# 输入函数 input接受的一定是一个字符串
# name = input("请输入一个姓名:") # 要用用户在终端输入一个值
# age = input("请输入一个年龄:") # 要用用户在终端输入一个值
# print("姓名:%s 年龄:%s" % (name, age))
# 案例2
a = input("num1>>>") # "20"
b = input("num2>>>") # "30"
# print(int(a)) # 将数字字符串转换为整型
print(int(a) + int(b)) # 将数字字符串转换为整型
10.分支语句
# 顺序执行
# print("OK")
# print("OK")
# print("OK")
# 分支语句之if语句
'''
在python中用:+缩进表示语句体
# 单分支语句
if 表达式:
语句1
语句2
语句3
# 双分支语句
if 表达式:
语句1
语句2
语句3
else:
语句1
语句2
语句3
# 多分支语句
if 表达式1:
语句1
语句2
语句3
elif 表达式2:
语句1
语句2
语句3
elif 表达式3:
语句1
语句2
语句3
...
else:
语句1
语句2
语句3
'''
# 案例1
# if 2 > 1:
# print("ok1")
# print("ok2")
# print("ok3")
# 案例2: 单分支语句
# user = "rain"
# pwd = 123
#
# if user == "yuan" and pwd == 123:
# print("登录成功!")
#
# print("程序结束!")
# 案例3:双分支语句
# user = input("请输入用户名:")
# pwd = input("请输入密码:") # ”123“
#
# if user == "yuan" and pwd == "123":
# print("登录成功!")
# else:
# print("用户名或者密码错误")
#
# print("程序结束!")
# 案例4:判断成绩
# score = int(input(">>>"))
#
# if score > 100 or score < 0:
# print("非法输入")
# elif score >= 90:
# print("成绩优秀")
# elif score >= 80:
# print("成绩良好")
# elif score >= 60:
# print("成绩及格")
# else:
# print("成绩不及格")
# 案例5
content = input(">>>")
# 判断是否是数字字符串
if content.isdigit():
score = int(content)
# 判断成绩的
if score > 100 or score < 0:
print("非法输入")
elif score >= 90:
print("成绩优秀")
elif score >= 80:
print("成绩良好")
elif score >= 60:
print("成绩及格")
else:
print("成绩不及格")
else:
print("请输入一个数字")
11.循环语句
# while:条件循环 for:遍历循环
'''
while 表达式:
循环语句体
语句
'''
# 案例1:无限循环
# while 1:
# # print("OK")
# score = int(input(">>>"))
#
# if score > 100 or score < 0:
# print("非法输入")
# elif score >= 90:
# print("成绩优秀")
# elif score >= 80:
# print("成绩良好")
# elif score >= 60:
# print("成绩及格")
# else:
# print("成绩不及格")
# print("程序结束!")
# 案例2:循环打印1-100
# count = 0 # 初始变量
# while count < 100: # 判断表达式
# # print("OK")
# count += 1 # count = count+1 步进语句
# print(count) # 循环语句体
#
# print("程序结束!")
# 案例3: 计算1+2+3+...+100
# count = 0 # 初始变量
# ret = 0
# while count < 100: # 判断表达式
# # print("OK")
# count += 1 # count = count+1 步进语句
# # print(count) # 循环语句体
# ret += count # ret = ret+count
#
# print(ret)
# 案例4:打印1-100中所有的偶数
# count = 0 # 初始变量
# ret = 0
# while count < 100: # 判断表达式
# # print("OK")
# count += 1 # count = count+1 步进语句
# if count % 2 == 0:
# # count是一个偶数
# print(count)
# 案例5:
count = 0 # 初始变量
ret = 0
while count < 100: # 判断表达式
# print("OK")
count += 1 # count = count+1 步进语句
print(count)
if count == 88:
break # 退出整个while循环
12. 作业练习
程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:太大了、太小了或者猜对了,直到用户猜对结果或者猜测次数用完导致失败。
设定一个理想数字比如:66,
让用户三次机会猜数字,如果比66大,则显示猜测的结果大了;
如果比66小,则显示猜测的结果小了;
只有等于66,显示猜测结果正确,退出循环。
最多三次都没有猜测正确,退出循环,并显示‘都没猜对,继续努力’。
cnt = 0
realNum = random.randint(0,10) # randint(0,10)的边界值, 左右边界的0和10都是可以取到的。
realNum = 66
while cnt < 3:
num = int(input("请输入您猜的数字:"))
cnt += 1
if num < realNum:
print("猜小了")
elif num > realNum:
print("猜大了")
else:
print("猜对了!")
break
if cnt == 3:
print("三次机会已经用完!")