程序是由代码和注释组成,注释是对某一部分代码作的解释,不参与程序的执行,不影响程序的运行
单行注释:在一行注释内容前面加# 快捷键 Ctrl+/
# 你好
多行注释:用 ‘’’ ‘’’ 或 ”“” “”“ 将注释内容引起来
'''
hello
world
'''
对代码进行注解和说明,增强代码的可读性;让代码功能消失
一条语 句占一行,一行结束以后不需要写分号;一行有多行语句,语句之间必须有分号
一条语句最前面的空格叫缩进,python中语句前面不能随便添加缩进。
如果在程序中需要使用一个数据,想用变量将数据存起来,然后再通过变量来使用这个数据
# 语法
变量名=数据
(1)两个要求
变量名不能是系统关键字;只能由数字字母下划线组成,不能以数字开头
(2)三个规范
a. 见名知意;
b. 字母都小写,多个单词用下划线隔开
c. 不使用系统的函数名,类名和模块名
关键字是本身就具备特殊功能或特殊意义的标识符,关键字不能另做他用
from keyword import kwlistprint(kwlist)
#'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'
数据是需要保存的对象,提供数据的方式:具体的数据、已经赋值过的变量、运算表达式、函数调用表达式
数字类型 | 字符串 | 列表 | 元组 | 布尔 | 集合 | 字典 |
---|---|---|---|---|---|---|
整型int 浮点型float 复数型complex |
str |
list |
tuble |
bool |
set frozenset |
dictionary |
1、获取数据类型 type()
–获取指定数据的类型
2、类型转换:类型名(数据)–将指定的数据转换成指定的类型
(1) 隐式转换-自动完成
在对数据进行运算的过程中,较低数据类型(整数)就会转换为较高数据类型(浮 点数)以避免数据丢失
a=1
b=2.0
print(a+b) #3.0
(2) 显式转换-需要使用类型函数转换
a. 布尔和字符串转换
所有的数据都可以转换为布尔和字符串
0转换为False,非0转换为True
所有的空值对象全是False
print(bool(0), bool(1), bool(-1)) # False True True
print(bool([]), bool({}), bool(())) # False False False、
print(str())
b. 数字转换
浮点数转整数只保留整数部分,整数转浮点数在整数后面.0
只有引号内容是一个整数的字符串才能转换成整数
只要引号内容是数字的字符串就能转换成浮点数
print(int(bool(100))) # 1
print(int(1.1)) # 1
print(int(.1)) # 0
print(int(1.)) # 1
# print(int('2001.0')) # 错误
print(int('2000')) # 2000
print(float('1.1')) # 1.1
print(float('1')) # 1.0
print(str(2))# '2'
input()
在程序中获取从控制台输入的数据;输入的数据返回类型一定是字符串
s = input("请输入:")
print(s, type(s))
# 请输入:12
# 12
一次性输入多个值
#输入三个整数
a,b,c=map(int,input('请输入a b c:').split())
print()
运行程序的时候在控制台看到的内容,一定是在程序中用print打印的内容
用法1:打印一个数据、多个数据、数据表达式
#print(数据)
print(100) # 100
#print(数据1,数据2,数据3,....,数据n)
print(100,12,7.5) #100 12 7.5
#print(数据表达式)
print(1+2) # 3
用法2:设置end
默认情况下一个print的打印结果占一行,原因是print在打印完数据之后会自动打印end的值,end的值默认是换行
# print(数据1,数据2,数据3,....,end='xxxx')
print(12,34,end=' ')
print('hello')
# 12 34 hello
用法3:设置sep
sep
控制多个数据之间的分割方式,默认是空格
# print(数据1,数据2,数据3,....,sep='xxxx')
print(12,34,sep='+')
# 12+34
print(1,2,3,end='=',sep='+')
print(6)
#1+2+3=6
格式化输出类型一定是字符串,格式化输出有好几种
format()
方法
文本中添加占位符(花括号 {}
),然后通过 format() 方法运行值
name = '小明'
age = 20
str1 = '{}今年{}岁'.format(name, age)
print(str1)
#小明今年20岁
f 字符串
name = '小明'
age = 20
str2 = f'{name}今年{age}岁'
千分位符
num = 132456789
a = '{:,}'.format(num) #:,--表示将传进来的数据每隔三位分隔一次
print(a)
百分数
b = '{:.2%}'.format(67 / 100) #:.2% --保留两位小数,转换成百分数的形式
print(b)
日期输出
2022-6-21 15:30:30
# %Y-%m-%d %H-%M-%S 年月日 时分秒
from datetime import datetime
time_=datetime(2022,6,21,15,30,30)
c='{:%Y-%m-%d %H-%M-%S}'.format(time_)#给format传一个日期样式的数
print(c)
自定义输出
# < 左对齐 >右对齐 ^ 居中对齐
# :>n 将数据使用空格拓展成长度为N的字符串并右对齐
# :0>n 将数据使用0拓展为长度为n的字符串并右对齐
print('{:%>3}'.format('*'))
print('{:>3}'.format('**'))
print('{:>3}'.format('***'))
print(2 + 3) # 5
print(2 - 3) # -1
print(2 * 3) # 6
print(2 / 4) # 0.5
# //(整除):向下取整,结果为整数
print(3 // 2) # 1
# **(幂运算):涉及到开放,结果均为浮点型
print(2 ** 3) # 8
# %(取余)
print(5 % 2) # 1
and:条件1 and 条件2 条件1,2都成立时,整体条件成立,反之,条件不成立
中断:and左边条件不成立时,右边条件无需在判断
or:条件1 or 条件2 至少有一个条件成立,整体成立;都不成立时整体不成立
中断: 左边条件成立时,右边条件无需在判断,左边条件不成立时,后边条件才判断
# 闰年:1、能被4整除但不能被100整除 2、能被400整除
year = int(input('请输入年份:'))
print(type(year))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print(year, '是闰年')
else:
print(year, '不是闰年')
not:取反
print(not False) # True
==等于(判断是否相等)、!=不等于、>大于、<小于、>=大于等于、<=小于等于
python中比较大小是同类型数据之间比较大小,比较大小得到的结果是布尔值
问题:为什么python能够比较大小
回答:python使用的编码值叫万国码:Unicode—Unicode是ASCII的一个拓展版
数字0-9对应的编码值是48- A-Z:65-90 a-z:97-122
print(3 > 4) # False
=简单赋值、+=加法赋值、-=减法赋值、*=乘法赋值、/=除法赋值、# %=取模赋值、**=幂赋值运算符、//=取整除 赋值
:=海象运算符,可在表达式内部为变量赋值。
复合赋值运算符:先算等号右边的式子再算等号左边的式子
a = 21
b = 10
c = 0
c = a + b
print("1 - c 的值为:", c) # 31
c += a
print("2 - c 的值为:", c) # 52
c *= a
print("3 - c 的值为:", c) # 1092
c /= a
print("4 - c 的值为:", c) # 52.0
c = 2
c %= a
print("5 - c 的值为:", c) # 2
c **= a
print("6 - c 的值为:", c) # 2**21
d = 42
d //= a
print("7 -d 的值为:", d) # 2
按位与&:参与运算的两个值,如果两个相应座位都为1,则最后结果为1
按位或|:对应的两个二进位有一个为1时,结果为1
按位异或^ :对应的二进位相同时为0,不同时为1
按位取反~ :对数据的二进位取反,1取反为0,0取反为1
<<左移动 :运算数的各二进位全部左移左移若干位,由<<右边的数指定移动的位数,高位丢弃,低位补0
右移动 :运算数的各二进位全部右移左移若干位,由>>右边的数指定移动的位数,高位补0,低位丢弃
按位运算符是把数字看作二进制来进行计算的
a =60 # 二进制0011 1100
b =13 # 二进制0000 1101
print(a & b)#0000 1100
print(a|b)#0011 1101
print(a^b)#0011 0001
print(~a)#1100 0011
in:在指定的序列中找到值返回 True,否则返回 False
not in:如果在指定的序列中没有找到值返回 True,否则返回 False。
a = 5
list = [1, 2, 3, 4, 6, 7]
if a in list:
print(True)
else:
print(False)
is:判断两个标识符是不是引用一个对象 x is y–id(x)==id(y)
in not:判断两个标识符是不是引用自不同的对象 x is not y–id(x)!=id(y)
注意:is与==的区别# is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
a = [1, 3]
b = a
print(b is a) # True
c = a[:] # 创建一个新列表给c,c和a不再是同一个列表对象
print(c is a) # False
1、先算小括号整体
2、算术运算符:** > *、/、%、// > +、-
3、算术运算符>比较运算符>逻辑运算符(and or not)>赋值运算符(== += -=)
练习1:华氏度和温度的转换:C = (F - 32)/1.8
练习2:根据指定的圆的半径,计算圆的周长和面积。
f = float(input("请输入华氏度:"))
c = (f - 32) / 1.8
print('华氏度{:.2f}等于摄氏度{:.2f}'.format(f, c))
c1 = round(c, 3) # round(参数1,参数2)---参数1是要操作的数值,参数2是要保留的小数位
print(f'华氏度{f}等于摄氏度{c1}')
r = float(input("请输入圆的半径:"))
s = math.pi * r * r # 面积
g = 2 * math.pi * r # 周长
print('半径为{}的圆的面积是{:.2f},周长是{:.2f}'.format(r, s, g))
print(math.pi)