注释
行和缩进
1.一条语句占一行,一行结束不需要写分号
2.如果要将多条语句写在同一行,语句和语句之间必须写分号
3.一行的开头不能随意添加缩进(空格或者tab) - 代码默认情况下顶格写
标识符和关键字
1.标识符 - Python命名要求,要求名字都必须是标识符
标识符的要求:名字必须由字母、数字或者下划线组成,并且数字不能开头。
变量名 = 数据
abc = 100
m12 = 100
a__ = 100
__12 = 100
# %abc = 100 # 报错
# 12abc = 100 # 报错
2.关键字 - 本身具有特殊意义或者特殊功能的标识符就是关键字,关键字不能用来命名
# 打印Python所有的关键字方法
from keyword import kwlist
print(kwlist)
基本数据类型
1.数字数据
意义:用来表示数值大小的数据就是数字,例如:价格、年龄、身高、距离、折扣、数量
表示方法:和数学中表示数字的方式一样,例如:199、3.14、-28、+0.34、3e4
类型(对数据的分类):根据数字中是否有小数点将数字数据分为整型(整数)和浮点型(小数)两类; 整型 - int、浮点型 - float
2.文本数据
意义:用文字符号来表示信息的数据就是文本数据,例如:姓名、家庭住址、学校名字、专业名字、电话号码、身份证号码等
表示方法:将文本数据放在单引号或者双引号中间。(必须加引号),例如:‘小明’、“清华大学”
类型:只有字符串这一种类型;字符串 - str
3.布尔数据
意义:在程序中表示真假、成立不成立关系的数据(用True表示真、肯定、成立; 用False表示假、否定、不成立)
表示方法:只有两个值:True、False
类型:布尔 - bool
4.空值
意义:在程序中表示空、表示无、没有
表示方法: 只有一个值:None
获取数据的类型 - type函数
type(数据) - 获取指定数据的类型
print(type(100)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type('abc')) # <class 'str'>
2.类型转换
类型名(数据) - 将指定的数据转换成指定的类型
1.int(数据) : 所有的小数、布尔值和部分字符串可以转换成int
所有的小数都可以转换成int - 转换的时候只保留整数部分
print(int(1.23)) # 1
print(int(2.9999)) # 2
print(int(-2.888)) # -2
所有的布尔都可以转换成整数
print(int(True)) # 1
print(int(False)) # 0
字符串内容是整数的字符串(去掉字符串的引号以后本身是一个整数的字符串)才能转换成整数
print(int('250')) # 250
# print(int('12.5')) # 报错
2.float(数据):所有的整数、布尔值和部分字符串可以转换成float
所有整数可以转换成float
print(float(34)) # 34.0
print(float(102)) # 102.0
布尔都可以转换成float
print(float(True)) # 1.0
print(float(False)) # 0.0
去掉字符串引号后本身是一个数字的字符串可以转换成float
print(float('23')) # 23.0
print(float('1.23')) # 1.23
print(float('3e4')) # 30000.0
# 3)str(数据) - 任何类型的数据都可以转换成字符串,转换成字符串的时候是直接在数据外面加引号
# str(100) -> '100'
# str(3.14) -> '3.14'
# str(True) -> 'True'# 4)bool(数据) - 任何类型的数据都可以转换成布尔。所有零值(0、0.0、0.000)和空值(None、''、[])会转换成False,其他的都是True
print(bool(0)) # False
print(bool(0.0)) # False
print(bool(None)) # False
print(bool('')) # Falseprint(bool(34)) # True
print(bool(-233.8)) # Trueprint(bool('False')) # True
print(bool('ksks')) # True
print - 输出函数(打印函数), 在控制输出/打印数据
在控制台看到的数据一定是程序中使用print打印的数据;如果想要将数据显示到控制台,必须在程序中用print打印出来
1.一个print打印一个数据
2.一个print同时打印多个数据
print(100)
print('abc')
print(type(300))
print(100 + 200)
print(100, 200, 300)
print(12.3, 67, '你好', True)
print('hello', 10 + 20, type(0.3))
3.定制end
print打印数据的原理:每次执行print的时候会先将数据打印到控制台,然后再打印end的值(如果没有定制end,end默认是换行)
定制end: print(数据1, 数据2, 数据3, …, end=字符串)
print(300, end=';')
print(200)
'''
300;200'''
4.定制sep
sep控制同时打印多个数据的时候数据和数据之间的分割方式,sep的默认值是空格
print(数据1, 数据2, 数据3,…,sep=字符串)
print(10, 20, 30, 40, sep='===')
1.输入函数 - input
在程序中获取从控制台输入的数据
1.程序中有多少个input,控制台就可以输入多少个数据(每次输入以回车结束)
input()
input()
2.input的用法
变量 = input(输入提示信息)
name = input('请输入你的名字:')
print(name, type(name))address = input('请输入你的家庭住址:')
print(address, type(address))
注意:input操作,不管从控制台输入的是什么,程序中获得的数据都是字符串
# 提示用户输入年龄,并且将输入的年龄值转换成int,再保存到变量age中
age = int(input('请输入你的年龄:'))
print(age, type(age))
print(age > 18)
1.变量的作用
变量是用来保存数据的。(将数据保存到变量中以后,就可以通过使用变量来使用数据)
数据保存到变量中以后再来使用数据可以让数据的意义更明确
print(18)
print(89)age = 18
score = 89
print(age)
print(score)
2.定义变量(创建变量保存数据)
# 1)如果用print来作为变量名使用,会导致print函数的打印功能消失
# print = 100
print(200)# 2)如果用类型名来作为变量名使用,会导致对应的类型转换无法进行
# int = 10
print(int(34.56))
3.驼峰式命名
dogName = '旺财'
pythonClassAddress = '14教室'
4)下划线分割单词
dog_name = '财财'
python_class_address = '14教室'
5)用变量保存具体的数据
a = 100
b = 'abc'
6)用变量保存已经赋值过的变量中的数据
c = name
print(c)
7)用变量保存运算表达式的运算结果
d = 100 + 200
print(300)
使用变量就是使用变量中保存的数据。(数据能做的事情,保存这个数据的变量都可以做)
什么时候需要变量中保存的数据,什么时候就使用变量
num = 100
# 通过打印变量来打印变量中保存的数据
print(num) # 100
print('num') # num# 通过获取变量的类型来获取变量中保存的数据的类型
print(type(num)) # <class 'int'>
print(type('num')) # <class 'str'># 将变量中保存的数据作为运算对象
print(num + 200) # 300
# print('num' + 200) # 报错
4.重新给变量赋值
# 第一次给变量x赋值为100
x = 100
print(x)# 重新给变量x赋值为200(重新赋值后新的值会覆盖原来的值)
x = 200
print(x)# 重新给变量x赋值为 'abc'
x = 'abc'
print(x)
4.同时定义多个变量
# 1)同时定义多个变量赋相同的值:变量1 = 变量2 = 变量3 = ... = 数据
a1 = b1 = c1 = 20
print(a1, b1, c1)# 2)同时定义多个变量赋不同的值:变量1, 变量2, 变量3,... = 数据1, 数据2, 数据3, ...
x1, y1, z1 = 10, 20, 30
print(x1, y1, z1)
Python中数学运算符:+(加)、-(减)、*(乘)、/(除)、%(取余-求余数)、//(整除)、**(幂运算)
print(5 + 2)
print(5 - 2)
print(5 * 2) # 10
print(5.0 * 2) # 10.0
print(5 / 2) # 2.5
print(10 / 2) # 5.0
print(10 % 3) # 1
print(15 % 4) # 3
print(15 % 2) # 1
3.// - 整除
# x // y - x除以y的商,商向小取整(找和尚相邻的两个整数中较小的那个)
print(5 // 2) # 2
print(3.8 // 2) # 1.0
print(5.0 // 2) # 2.0
print(-5 // 2) # -3
# x ** y - 求x的y次方
print(2 ** 3)
print(5 ** 4)
print(21 ** 2)
print(2 ** -2) # 0.25
print(16 ** 0.5) # 4.0
print(8 ** (1/3)) # 2.0
比较运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)
# 1.所有的比较运算符的运算结果都是布尔值
print(10 > 9)
print(10 < 9)
print(10 >= 10)
print(10 <= 20)
print(10 == 20)
print(10 != 20)
2.Python中的比较运算支持连写表示范围
# 练习:写出判断score是否在[70, 90)范围内
score = float(input('请输入分数:'))
逻辑运算法:and(逻辑与)、or(逻辑或)、not(逻辑非)
复合条件 - 将多个条件连接成一个条件的连接方法:a.要求多个条件同时成立 b.要求多个条件中只要有一个条件成立就行
1.and(逻辑与)
"""
1)应用场景:要求多个条件同时成立的时候,这多个条件就用and来连接;相当于生活中的或者
2)运算规则:条件1 and 条件2 - 两个条件都成立结果就是True,只要有一个不成立结果就是FalseTrue and True -> TrueTrue and False -> FalseFalse and True -> FalseFalse and False -> False
"""
# 案例1:写出判断num是否能够同时被3和5整除的条件
num = 30# 条件:num是否能够同时被3和5整除 -> 既能够被3整除,又能够被5整除 -> 能被3整除的条件和能被5整除的条件同时成立
# 能被3整除的条件: num % 3 == 0
# 能被5整除的条件: num % 5 == 0
print('num是否能够同时被3和5整除:', num % 3 == 0 and num % 5 == 0)
print('num是否能够同时被3和5整除:', num % 15 == 0)
<(逻辑或)
"""
1)应用场景:要求多个条件中只要有一个条件成立就行,这多个条件就用or来连接;相当于生活中的或者
2)运算规则:条件1 or 条件2 - 两个条件中只要有一个条件成立结果就是True,两个条件都不成立结果才是FalseTrue or True -> TrueTrue or False -> TrueFalse or True -> TrueFalse or False -> False
"""
# 案例:判断num是否能够被3或者7整除
num = 4
print('num是否能够被3或者7整除:', num % 3 == 0 or num % 7 == 0)
<(逻辑非)
"""
1)应用场景:对条件进行否定(相当于生活中的否定语句)
2)运算规则:not 条件 - 对指定条件进行否定not True -> Falsenot False -> True
"""
# 案例1:写出age不大于18的条件
age = 72
print(not age > 18)
print(age <= 18)
赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
1.不管是简单的赋值运算符还是复合赋值运算符,其功能都是给变量赋值(将一个数据保存到一个变量中)
注意:所有赋值运算符的左边必须是变量,右边必须是能够提供数据的表达式
1.= 变量 = 数据 - 将数据直接保存到变量
a = 10
b = 20 * 2
2.复合赋值运算符:+=、-=、*=、/=、%=、//=、**=()
变量 += 数据 - 先将变量中的数据取出来和后面的数据进行加法运算,然后让加法运算的结果保存到前面的变量中
注意:复合赋值运算符前面的变量必须是已经赋值过的变量
c = 100
c += 10 # c = c + 10
print(c) # 110c -= 20
print(c) # 90c *= 2
print(c) # 180c %= 3 # c = c % 3 = 180 % 3 = 0
print(c) # 0
分支结构存在的价值:解决程序中’如果xxx就xxx’的业务逻辑
1.if单分支结构 - 条件成立就执行某个操作,条件不成立这个操作就不执行
解决:如果xxx就xxx
语法:
if 条件语句:
代码段
说明:
a. if - 固定写法
b. 条件语句 - 任何有结果的表达式(一般是判断语句)
c. : - 固定写法
d. 代码段 - 结构上,和if保持一个缩进(tab)的一条或者多条语句(至少一条)
逻辑上,代码段里面的代码就是满足条件才会执行的代码
# 案例:如果num是偶数就在控制台打印'偶数'
num = 12
if num % 2 == 0:print('偶数')print('能被2整除')
print('是一个整数')
解决:如果xxx就xxx,否则就xxx
语法:
if 条件语句:
代码段1(条件成立会执行的代码)
else:
代码段2(条件不成立会执行的代码)
# 练习1:根据num的值打印'偶数'或者'奇数'
num = 34
if num % 2 == 0:print('偶数')
else:print('奇数')
3.if多分支结构 - 根据不同的条件做不同的事情
解决:如果xxx就xxx,如果xxx就xxx, 如果xxx就xxx
方法1: - 每个条件都会判断一次 (用在多个条件中其中一个条件成立,另外的条件也可能成立的时候)
if 条件1:
代码段1
if 条件2:
代码段2
if 条件3:
代码段3
方法2: - 后面的条件在前面的条件不成立的情况下才会判断 (用在多个条件中其中一个条件成立,另外的条件绝对不会成立的时候)
if 条件1:
代码段1
elif 条件2:
代码段2
elif 条件3:
代码段3
…
elif 条件N:
代码段N
else:
代码段M(前面所有条件都不成立的时候执行)
注意:else可以不写
# 案例:根据百分制的分数值,打印对应的等级:90及90分以上 - A、80多分 - B、60多分、70多分 - C、60分以下 - D
# 方法1:
score = 98
if score >= 90:print('A')
if 80 <= score < 90:print('B')
if 60 <= score < 80:print('C')
if score < 60:print('D')
1.for循环 - 让代码重复执行
语法:
for 变量 in 序列:
循环体
说明:
a. for、in、冒号 - 固定写法
b. 变量 - 可以没有定义的变量名,也可以是已经定义过的变量的变量名
c. 序列 - 容器型数据类型的数据,比如:字符串、列表、字典、集合、元组、迭代器、生成器、range等
d. 循环体 - 结构上,和for保持一个缩进的一条或者多条语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
for循环的循环次数由序列中元素的个数决定
for x in 'abc':print(x, 'hello world!')for x in [10, 20, 30, 40, 50]:print(x, '你好!')
1.range函数 - 创建等差数列
1)range(N) - 产生等差数列[0,N),差是1;range(5): 0,1,2,3,4
2)range(M, N) - 产生等差数列[M,N),差是1;range(5, 10): 5,6,7,8,9
for x in range(10):print(x)
# 10,9,8,7,6,5,4,3,2,1,(0)
for x in range(10, 0, -1):print(x)
# 案例1:求1+2+3+4+...+100
sum1 = 0
for x in range(1, 101):sum1 += x
print(sum1)
语法:
while 条件语句:
循环体
执行过程:
不断的判断条件语句是否为True,如果为True就执行循环体,为False循环结束。
x = 0
while x < 5:print('hello world!')x += 1
2.for和while的选择问题
如果遇到了循环的问题,优先考虑使用for循环,for循环解决不了才使用while。
for的应用场景:循环次数确定
while的应用场景:循环次数不确定(写代码的时候程序员无法知道循环的次数)
3.break - break是循环关键字,只能在循环体中使用 break - break是循环关键字,只能在循环体中使用
# break的作用: 结束整个循环(执行循环体的时候如果遇到break,循环直接结束)
for x in range(5):print('+++++')print('-----')breakprint('=====')
3.while遇到break
while True:
需要重复执行的操作
if 循环结束条件:
break
pw = '123'
while True:value = input('请输入密码:')if value == pw:break
1.输出1-9的数字以及它们的平方和立方
for i in range(1, 10):print(f'{i}t{i**2}t{i**3}')
2.1-100求和
total = 0for i in range(1, 101):total += iprint(total)
3.找出100~999之间的水仙花数
for x in rang(100, 1000):a = x // 100b = x // 10 % 10c = x % 10if a**3 + b**3 + c**3 = x:print(x)
4.输入一个大于1的正整数,判断它是不是质数
质数:只能被1和自身整除的数叫做质数,也叫作素数(prime number)。
假设这个数是N,如果是质数,那么在2到N-1之间应该没有它的因子。
num = int(input('num = '))
is_prime = True
for i in rang(2, num):if num % i == 0:is_prime = Falsebreak
print(is_prime)
5.输出100以内的质数
for num in range(2, 100):# 假设num是一个质数,将布尔值先赋值为Trueis_prime = True# 在2~N-1之间找一下有没有num的因子for i in range(2, num):if num % i == 0:# 不是质数就将对应的布尔值赋值为Falseis_prime = False# 使用break关键字提前终止循环breakif is_prime:print(num)
6.猜数字小游戏
import randomanswer = random.randrange(1, 101)
counter = 0
while True:counter += 1thy_answer = int(input('请输入:'))if thy_answer > answer:print('小一点')elif thy_answer < answer:print('大一点')else:print('恭喜你,猜中了')break
if counter > 7:print('温馨提示:智商余额不足!!!')
print('游戏结束')
本文发布于:2024-01-28 21:31:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170644871310424.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |