Python 基本语法

Print 函数用法

print() 函数,用于向屏幕打印输出内容

print() 函数,一次打印输出多个数据,使用逗号分隔

print() 函数高级用法

print(值1, 值2, 值3,..., sep="分割符", end="结束符")

sep、end 是可选的

sep 用于设置分割符,默认分割符为空格 例如打印3个值,以 * 号做为分割符,效果如下

end 用于设置结束符,默认结束符是换行 例如以 2023 做为结束符,效果如下

在Python中严格区分大小写

Python中的每一行就是一条语句,每条语句以换行结束

Python中每一行语句不要过长(规范中建议每行不要超过80个字符)

一条语句可以分多行编写,多行编写时语句后边以\结尾

print('he\
aaa\
aaa')

Python是缩进严格的语言,所以在Python中不要随便写缩进 

注释

单行注释

单行注释就是一个井号#

多行注释

在python中也会有注释有很多行的时候,这种情况下就需要批量多行注释符了。多行注释是用三引号'''   '''包含的,或者三个双引号 """ 将注释括起来

可能有的人会说这不是和多行字符串混淆了吗,但是我看到的许多程序员也是这么用的,使用时候注意区分下就好。

单引号(''')

#!/usr/bin/python3 
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号 
这是多行注释,用三个单引号
'''
print("Hello, World!")

双引号(""")

#!/usr/bin/python3 
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号 
这是多行注释,用三个双引号
"""
print("Hello, World!")

用三引号进行包裹

"""

在三引号中间写的内容,全部都是注释内容

"""

三引号如果前边有一个变量的名字,那么也表示字符串

first_str = """
当我们声明变量的时候尽量不用a、b等这种没有意义的字符
尽量使用能明确表示变量值含义的单词来进行表示
"""
print(first_str) # 结果是有输出的

变量

变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的。变量本身没有任何意思,它会根据不同的字面量表示不同的意思

一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量Python中使用变量,不需要声明,直接为变量赋值即可

a = 10

不能使用没有进行过赋值的变量,如果使用没有赋值过的变量,会报错 NameError: name 'b' is not defined

Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值

a = 10
a = 'hello'
print(a) // hello

# 当程序运行的时候,电脑会开辟一份内存,用于存储10和 hello,上面代码中表示,a 指向 10,然后又改为指向 hello,程序执行完后,释放内存

变量名命名规则

变量名区分大小写,name 和 Name 是两个不同的标识符

变量名由字母、数字、下划线组成,不能以数字开头

Python 关键字不能作为变量名,不建议使用中文字符做为变量名

变量命名方式

小驼峰命名法 :变量名由多个单词组成,第一个单词首字母小写,后面单词首字母大写,其余字母均小写,如:userName,totalScore

大驼峰命名法:变量名由多个单词组成,每个单词的首字母均大写,其余字母小写,如:UserName,TotalScore

也可以根据自己的编程习惯为变量命名,如 user_name、username、total_score 等,都是可以的,建议与开发团队保持相同的命名风格。

标识符的命名

标识符:在Python中所有可以自主命名的内容都属于标识符,比如:变量名、函数名、类名

如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax

标识符必须遵循标识符的规范:

标识符中可以含有字母、数字、_,但是不能使用数字开头:例子:a_1 _a1 _1a

标识符不能是Python中的关键字和保留字,也不建议使用Python中的函数名作为标识符,因为这样会导致函数被覆盖

在Python中注意遵循两种命名规范:下划线命名法,所有字母小写,单词之间使用_分割:max_length min_length hello_world xxx_yyy_zzz
帕斯卡命名法(大驼峰命名法) ,首字母大写,每个单词开头字母大写,其余字母小写: MaxLength MinLength HelloWorld XxxYyyZzz  

数据类型

数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值

数据类型-数值

在Python数值分成了三种:整数、浮点数(小数)、复数

在Python中所有的整数都是int类型

Python中的整数的大小没有限制,可以是一个无限大的整数 

a = 10

#type是检测数据类型的一个函数
print(type(a))  # 打印结果:<class 'int'>,class在这里的意思就是数据类型的意思,int就是整数的意思


b = 20
c = 999999999999999999999999999999999999999999999 ** 100

如果数字的长度过大,可以使用下划线作为分隔符

c = 123_456_789 #相当于123456789,效果是一样的
# d = 0123 10进制的数字不能以0开头
# 其他进制的整数,只要是数字打印时一定是以十进制的形式显示的
# 二进制 0b开头
c = 0b10 # 二进制的10
# 八进制 0o开头
c = 0o10
# 十六进制 0x开头
c = 0x10
 
# 也可以通过运算符来对数字进行运算,并且可以保证整数运算的精确
c = -100
c = c + 3

浮点数(小数),在Python中所有的小数都是float类型

c = 1.23
c = 4.56
a=6
b=2

print(a/b)  #两个整数相除会变成浮点数
# 对浮点数进行运算时,可能会得到一个不精确的结果
c = 0.1 + 0.2 # 0.30000000000000004

数据类型-字符串

字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型,在Python中字符串需要使用引号引起来

s = 'hello'
# s = abc # 字符串必须使用引号引起来,不使用不是字符串
# 引号可以是双引号,也可以是单引号,但是注意不要混着用
s = 'hello'
s = "hello"
# s = 'hello" 引号不能混合使用  SyntaxError: EOL while scanning string literal
# 相同的引号之间不能嵌套
# s = "子曰:"学而时习之,乐呵乐呵!""
s = '子曰:"学而时习之,乐呵乐呵!"'
# 长字符串
# 单引号和双引号不能跨行使用
s = '锄禾日当午,\
汗滴禾下土,\
谁知盘中餐,\
粒粒皆辛苦'
# 使用三重引号来表示一个长字符串 ''' """
# 三重引号可以换行,并且会保留字符串中的格式,打印出来也有换行
 
s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦'''

问:当我们获取到用户从键盘中输入内容的时候,这个变量是什么数据类型? 字符串

a = input("请输入你的内容:")

print(type(a)) #<class 'str'>

数据类型-布尔类型

bool 布尔类型 布尔类型表示真假,有两种取值:True,真 False,假

res_1 = true
res_2 = false

print(type(res_1))

print(type(res_2))

比较两个数 a、b 的大小,返回结果就是布尔值

a = 100
b = 200
print(a > b)  # 不成立

print(a < b) # 成立

转义字符

可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容

# 例子:
#   \' 表示'
#   \" 表示"
#   \t 表示制表符
#   \n 表示换行符
#   \\ 表示反斜杠
#   \uxxxx 表示Unicode编码
s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""
 
s = '\u2250'
print(s)
    
print('I\'m xiaomu')  # I'm xiaomu
print("I like \"Python\"") # I like "Python"

数据类型之间的转换

整数和浮点数之间的转换

注意,浮点数转换成整数的时候,只是舍弃了小数点后的数字

a = 1
b = 1.9
print(type(a)) #<class 'int'>
print(type(b)) #<class 'float'>

print(float(a)) # 1.0

print(int(b)) # 1

数值与字符串之间转换

我们声明一个数字,是否能转成字符串

a = 1
b = 1.9
print(type(a)) #<class 'int'>
print(type(b)) #<class 'float'>
c="hongkong"
print(type(c)) #<class 'str'>

# 整数转换成字符串
d = str(a)
e = str(b)
print(type(d), d) #<class 'str'> 1
print(type(e), e) #<class 'str'> 1.9

是不是字符串不能转换成数字?必须长的像数字的字符串可以转成数字

int("字符串") ,字符串转换成 int 类型,字符串内容必须是整数,否则会报错

c="hongkong"
print(type(c)) #<class 'str'>

# print(int(c)) # invalid literal for int() with base 10: 'hongkong'
e="11"
print(int(e))
print(type(int(e)))

float("字符串") ,字符串转换成浮点型,字符串内容必须是数字,否则会报错

str_1 = "xiaomi"
# num_1 = float(str_1) # ValueError: could not convert string to float: 'xiaomi'

str_2 = "3.14"
num_2 = float(str_2)
print(type(num_2)) # <class 'float'>

自动类型转换

数字之间可以进行数学计算,在进行数学计算时若数字类型不同,会发生自动类型转换

布尔值与整数做运算,布尔值自动转换为 int 类型

整数与浮点数做运算,整数自动转换为 float 类型

布尔值与浮点数做运算,布尔值自动转换为 float 类型

a=5
b = true
c = 5.55
x=a+b # 布尔值true自动转换为

int y=a+c  # 整数5自动转换为float类型

z=b+c  # 布尔值True自动转换为float

print("x:",  x, type(x))

print("y:",  y, type(y))

print("z:",  z, type(z))

运算符

% 取余数

相除的余数部分

i = 5
j = 3
print(i%j) # 5 / 3 余数是 2

** 幂运算

i = 5
j = 3

print(i**3) # 5 * 5 * 5

// 取整除

i = 5
j = 3

print(i//j)  # 1 相除的整数部分

+= i=i+1 同等于 i += 1

同理可推出

-=

*=

/=

%=

**=

//=

字符串格式化

i = "python web开发"
s = "我来学习%s课程" % i  # %s 这是一个占位符,后边将会用一个参数进行替代 注意这个参数是一个字符串

# s = "我%s来学习%s课程" %i %c # 不能多个参数
print(s)

print("我学习课程已经有%d个小时了" % 10)
print("我学习课程已经有%f个小时了" % 10.501)

%s 这是一个占位符,后边将会用一个参数进行替代 注意这个参数是一个字符串

%d 这是一个整数类型

%f 这是一个浮点数类型

format格式化

s = "我跟着%s,学习%s课程" % ("sky 老师","Python开发")
print(s)  # 我跟着sky 老师,学习Python开发课程

s = "我跟着{},学习{}课程".format("sky老师111","Python开发1111")
print(s) # 我跟着sky老师111,学习Python开发1111课程

r = "{0}跟着{1},学习{2},{0}学习了{3}个小时".format(
    "小明同学"," sky","Python开发课程",100)
print(r) # 明同学跟着 sky,学习Python开发课程,小明同学学习了100个小时
r =  """{student_name}跟着{teacher_name},学习{course_name},{student_name}学习了{study_time}个小时
""".format(
    teacher_name="sky",student_name="小明同学",course_name="Python开发课程",study_time=100)
print(r)
# 保留小数位的输出
print("请保留小数点后2位 {:.2f}".format(3.141592657)) # 请保留小数点后2位 3.14
# 保留符号
print("请保留小数点后2位 {:+.2f}".format(-3.141592657)) # 请保留小数点后2位 -3.14
print("请保留小数点后2位 {:+.2f}".format(+3.141592657)) # 请保留小数点后2位 +3.14
print("请保留小数点后2位 {:.0f}".format(3.141592657)) # 请保留小数点后0位 3
print("百分号的形式显示 {:.2%}".format(0.3141592657)) # 百分号的形式显示 31.42%   2 表示保留小位数

字符串操作

获取字符串中的某个字符

s = """怒发冲冠,凭栏处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
靖康耻,犹未雪。臣子恨,何时灭。
驾长车,踏破贺兰山缺。壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。
"""
print(s[1]) # 根据角标获取字符串中的某个字符

in 和 not in

s = """怒发冲冠,凭栏处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
靖康耻,犹未雪。臣子恨,何时灭。
驾长车,踏破贺兰山缺。壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。
"""

print("三十aaa" in s) # 判断某个子字符串是否在此字符串中


# in 是字符串的成员运算符 
# not in 
print("三十aaa" not in s)
print("三十" not in s)

字符串的查找

s = """怒发冲冠,凭栏处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
靖康耻,犹未雪。臣子恨,何时灭。
驾长车,踏破贺兰山缺。壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。
"""

print(s.find("怒发")) # 可以查找单个字符或者子字符串 ,找到了返回该字符串的角标位置
print(s.find("老师")) # 如果没有找到,返回 -1
# 我们使用find来进行字符串内容查找时,如果查找到了内容返回内容相对应的索引值
# 如果没有查找到,那么返回-1

字符串的替换

s = """怒发冲冠,凭栏处、潇潇雨歇。抬望眼、仰天长啸,壮怀激烈。
三十功名尘与土,八千里路云和月。莫等闲、白了少年头,空悲切。
靖康耻,犹未雪。臣子恨,何时灭。
驾长车,踏破贺兰山缺。壮志饥餐胡虏肉,笑谈渴饮匈奴血。待从头、收拾旧山河,朝天阙。
"""

# replace
print(s.replace(",","%", 3)) # 最后一个参数 3 表示替换的个数,替换掉前面 3 个,

基于关键字搜索做的聊天机器人案例

rebot = "小可爱"
while True:
    user_meassage=input("我说:")
    if "名字" in user_meassage:
        print("{0}:我叫{0}".format(rebot))
    elif user_meassage.find("学习")>-1:
        print("{0}:我跟着老师学习呀".format(rebot))
    elif user_meassage.find("老师")>-1:
        print("{0}:我真鄙视你呀,你连老师都不知道!".format(rebot))
    elif "水果" in user_meassage:
        print("{0}:我喜欢吃的水果有很多呀,比如说香蕉苹果大鸭梨呀".format(rebot))
    elif "再见" in user_meassage:
        print("{0}:再见,{0}会永远想你了,欢迎你再来聊天啊".format(rebot))
        break
    else:
        print("{0}:对不起亲爱的朋友,我没有理解你说的是什么".format(rebot))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值