【第一天】一月速通python,第一天基本语法
第一天打卡
- Hello Python
- 基础语法
- 字面量
- 注释
- 变量
- 数据类型
- 运算符和标识符
- 字符串
- 数据输入
- 其他
- Bool
- bool类型
- if语句
- if else
- if else elif
- 条件嵌套
- while and for
- while基础
- While嵌套
- for循环
- range语句
- 循环中断continue break
一月的时间速成python数据可视化和大数据,第一周python基础语法和核心概念。
第二周Python进阶和面向对象,
第三周python生态和标准库。
第四周python具体项目和实战。
第一天基本语法,环境搭建基本语法。
环境搭建,下载python3。安装过程中自动添加环境变量。下载pycharm community.
Hello Python
print("Hello Python!")
基础语法
字面量
常用的值类型
类型 | 描述 | 说明 |
---|---|---|
数字(Number) | 支持 1. 整数(int) 2. 复数(complex) 3. 浮点数(float) 4. 布尔(bool) | 布尔表示生活中逻辑真或者假,true表示真,False表示假。 True本质上是一个数字记作1,False记作0。 |
字符串(String) | 文本 | 字符串由任意数量的字符组成 字符串需要用双引号包围起来 |
列表(List) | 有序的可变数列 | 最多的 |
元祖(Tuple) | 有序的不可变数列 | 不可变 |
集合(Set) | 无序不重复集合 | 不重复 |
字典(Dictionary) | 无序key-value集合 | 无序的 |
注释
注释:在程序代码中对程序代码进行说明的文字。
作用:注释不是程序不能被执行,只是对代码程序进行解释说明,增添可读性。
# 单行注释 #号和内容中间一个空格隔开
"""
多行注释
当前钱包余额:50元
购买了冰淇淋,花费 10元
购买了可乐,花费 5元
最终,钱包剩余:35元
"""
money = 50
print("现在还有:", money, "元")
money -= 10
print("买了冰淇淋还剩:", money, "元")
money -= 5
print("买了可乐还剩:", money, "元")
变量
程序运行时,能储存计算结果或者能表示值的抽象概念。
变量名称 = 变量值
变量名称全大写表示常量
数据类型
type(被查看类型的数据)查看数据类型
函数 | 说明 | |
---|---|---|
int(x) | 转换为整数 | 小数转换为整数会丢失精度 |
str(x) | 转换为字符串 | 任意类型都可以转换为字符串 |
float(x) | 转换为浮点数 |
运算符和标识符
#标识符运算符
标识符只允许使用英文中文数字下划线。尽量不用中文,数字不可以开头,关键字不能作为标识符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | a+b |
- | 减 | a-b |
* | 乘 | a*b |
/ | 除 | a/b |
// | 取整除 | a//b |
% | 取余数 | a%b |
** | 指数 | a**b |
a = 11
b = 5
# 运算符
print(a - b)
print(a + b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | c+=a | c=c+a |
-= | c-=a | c=c-a |
*= | c*=a | c=c*a |
/= | c/=a | c=c/a |
%= | c%=a | c=c%a |
**= | c**=a | c=c**a |
//= | c//=a | c=c//a |
= | 赋值运算符 | 把右边结果赋值给左边,是“==” |
# 赋值运算符与复合赋值运算符
num = 1 + 2
a = 6
c = 10
c += a
print(c)
c -= a
print(c)
c *= a
print(c)
c /= a
print(c)
c %= a
print(c)
c **= a
print(c)
c //= a
print(c)
字符串
#字符串
字符串定义
单引号,双引号,三引号(三引号要赋值给变量,否则是注释)。
引号嵌套,转移字符解除引号效用,或者单双引号相互嵌套。
字符串拼接+
无法和非字符串拼接
占位拼接
%s:将内容转换为字符串占位
%d:将内容转换为整数占位
%f:将内容转换为浮点数占位(辅助符号“m.n”控制数字宽度和精度,m控制宽度设置的宽度小于数字本身不生效,.n控制小数点精度,要求是数字,会进行小数点的四舍五入)
# 占位拼接
name = "CXK"
class_num = 57
learn_time = "两年半"
avg_salary = 16781
message = "大家好,我是%s,我是偶像练习生第%s届毕业生,练习时长%s,毕业平均薪资%s" % (name, class_num, learn_time, avg_salary)
print(message)
# %s %表示我要占位,s表示把变量变为字符串占位。
字符串格式快速写法
f"内容{变量}"快速格式化。可以对表达式格式化,简化代码。
"""
name,公司名
stock_price 当前股价
stock_code 股票代码
stock_price_daily_growth_factor 股票每日增长系数,浮点数类型。
growth_days 增长天数
计算股票经过growth_days增长后当前股价。
"""
name = "文化传媒有限公司"
stock_price = 12.14
stock_code = 1093810941
stock_price_daily_growth_factor = 1.23
growth_days = 8
final_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
print(f"公司名字:{name}当前股价:{stock_price}股票代码:{stock_code}")
print("每日增长系数:%3.2f,经过%d天增长,当前股价为%5.3f" % (stock_price_daily_growth_factor, growth_days, final_stock_price))
数据输入
变量=input(提示信息) 无论输入什么类型的数据获取到的都是字符串
user_name = input("请输入用户名称:")
user_type = input("请输入用户类型:")
print("您好,%s,您是尊贵的%s用户,欢迎您的到来" % (user_name, user_type))
其他
.title().upper() .lower() .restrip() .lstrip() .strip()
首字母大写 全大写 全小写 删除字符串右边空白 左边空白 两端空白
#制表符换行符\t \n
(制表符添加四个空格 换行符换行)
Bool
bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}, 类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2}, 类型是:{type(bool_2)}")
bool类型
True False 可以通过定义得到,也可以通过比较运算符进行内容比较得到。
运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
if语句
#if
if 要判断的条件:
条件成立时,要做的事情。
age = int(input("请输入您的年龄:"))
if age >= 18:print("您已经成年了")
print("时间过得真快")
if else
if 要判断的条件:
条件成立时要做的事情1
条件成立时要做的事情2
条件成立时要做的事情3
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
不满足条件时要做的事情3
if else elif
if 要判断的条件:
XXXX
XXXX
elif 要判断的条件:
XXXX
elif 要判断的条件:
xxxx
else:
XXXX
"""
身高年龄vip等级综合判断
"""
height = int(input("欢迎来到小鸡子乐园,\n请输入您的身高:"))
age = int(input("请输入您的年龄:"))
vip_level = int(input("请输入您的vip等级(1~5):"))
if height < 120:print("身高小于120cm,可以免费游玩")
elif age < 18:print("您未成年可以免费游玩")
elif vip_level >= 3:print("您的vip等级大于2,可以免费游玩")
else:print("您需要购票10元")
print("祝您游玩愉快")
优化
print("欢迎来到小鸡子乐园")
if int(input("请输入您的身高:")) < 120:print("身高小于120cm,可以免费游玩")
elif int(input("请输入您的会员等级:")) > 3:print("你会员等级大于3可以免费游玩")
elif int(input("请输入您的年龄:")) < 18:print("未成年人可以免费游玩")
else:print("不好意思您需要买票10元")
print("祝您游玩愉快")
条件嵌套
多重条件嵌套,空格缩进来表示层次关系。
猜数字{1-10}随机产生,通过三次判断猜数字。
- 数字随机产生
- 有三次机会
- 每次猜不中提示大了小了
import random
number = random.randint(1, 10)
guess_num = int(input("请输入猜的数字"))
if guess_num == number: print("恭喜你猜对了")
else: if guess_num > number: print("你猜大了") else: print("你猜小了") guess_num = int(input("请再猜一次:")) if guess_num == number: print("恭喜你猜对了") else: if guess_num > number: print("你猜大了") else: print("你猜小了") guess_num = int(input("请再猜一次:")) if guess_num == number: print("恭喜你猜对了") else: if guess_num > number: print("你猜大了") else: print("你猜小了")
while and for
# 从1加到100
sum = 0
j = 1
while j <= 100:sum += j j += 1
print(i,j)
while基础
While 条件:
当满足条件时操作1
当满足条件时操作2
循环结束条件
# 1-100随机数,猜对为止无限次数,最后计数猜多少次
import random
num = random.randint(1, 100)
flag = True
count = 0
while flag: guess_num = int(input("请输入猜的数字:")) count += 1 if guess_num == num: print("恭喜你猜对了,一共猜了%d次" % count) flag = False else: if guess_num > num: print("你猜大了") else: print("你猜小了")
While嵌套
print输出不换行末尾加上end=‘’
# 九九乘法表
i = 1
while i < 10: # 内层循环控制变量 j = 1 while j <= i: # 内层循环不换行 制表符\t对齐 print(f"{j}*{i}={j*i}\t", end='') j += 1 i += 1 print() # 换行
for循环
for是遍历循环。无法构建无限循环。
for 临时变量 in 待处理数据集合(序列)
循环满足条件时执行的代码
string1 = "I offer you lean streets, desperate sunsets, the moon of the jagged suburbs.\nI offer you the bitterness of a man who has looked long and long at the lonely moon."
for x in string1:count = 0if x == "f":count += 1
print(f"一共出现了{count}次f“)
range语句
range(num)
从0开始到num不包含num本身。
range(num1,num2)
从num1到num2结束不包括num2本身。
range(num1,num2,step
从num1到num2结束不包括num2本身,数字之间的步长以step为准。
# for循环九九乘法表
for i in range(1, 10): j = 1 while j <= i: print(f"{i}*{j}={i*j}\t", end='') j += 1 print()
1-100有几个偶数(除余%)
# 利用除2余数是否为0判断是否为偶数
count = 0
for x in range (1, 101):if x % 2 == 0:count += 1
print(f"0到100一共有{count}个偶数")
循环中断continue break
continue中断本次循环,直接进入下一次循环,for和while循环一致。
break直接结束本次循环,for和While效果一致都是直接结束。
循环案列
某公司账户有1w元给20名员工发工资。
- 员工编号从1到20,从编号1开始,依次领取工资没人领取1000元。
- 领工资时判断绩效分(1-10)随机生成,低于5不发。
- 工资发完了直接结束。
# 循环综合案例
import random
money = 10000
for x in range(1, 21):score = random.randint(1, 10)if score < 5:print(f"员工{x}绩效分小于5,不发工资")continueelse:money -= 1000print(f"员工{x}发放工资1000元,账户余额为{money}")if money < 1000:print("账户余额不足,剩下的下月再发放")break