文章目录
一. 变量的命名和使用
变量规则:
- 变量名只能包含字母、数字和下划线。变量名能以字母或下划线打头,但不能以数字打头。例如,可将变量命名为message_1,但不能将其命名为1_message。
- 变量名不能包含空格、@、%、$等特殊字符,但能使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greetingmessage会引发错误。
- 不能使用保留字作为变量名。如下图。
- 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
- 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
- 变量名区分大小写,同一个大写和小写字母代表不同的变量名。应使用小写的Python变量名。虽然在变量名中使用大写字母不会导致错误,但是大写字母在变量名中代表常量。
Python3中的33个保留字
二. 变量赋值
Python语言中,“=”表示赋值,可以同时给多个变量赋值,基本格式如下。
# 单个赋值
>>> x=1
# 多个变量同时赋值
>>> x,y,z=1,1,1
>>> print(x+y+z)
3
# 交换赋值
>>> x,y=y,z
需要用逗号将变量名分开。对于要赋给变量的值,也需同样处理。
三. 常见函数
1. input() 函数
input()函数从控制台获得用户输入,无论用户在控制台输入什么内容,input()函数都以字符串类型
返回结果,一般将input()函数的返回结果赋给一个变量,代码如下
# 如果无需提示则可以省略不写
>>>t=input('请输入带符号的温度值')
2. eval()函数
- eval()执行存储在字符串中的 Python 表达式或代码,并返回表达式的结果。
- 即以Python表达式的方式解释并执行字符串,得到的结果将去掉字符串前后的引号。
语法:
eval(expression, globals=None, locals=None)
# expression 是一个字符串,其中包含要执行的 Python 表达式或代码。
# globals (可选)是一个字典,用于指定全局命名空间。
#如果提供了 globals 参数,那么 eval() 函数在执行时会在这个字典中查找全局变量和函数。
# locals (可选)是一个字典,用于指定局部命名空间。
# 如果提供了 locals 参数,那么 eval() 函数在执行时会在这个字典中查找局部变量。
# 1. 执行 x+5
x = 10
result = eval('x + 5')
print(result) # 输出 15
# 2. 执行code_block中的方法multiply
code_block = '''
def multiply(a, b):
return a * b
result = multiply(3, 4)
'''
eval(code_block)
# 3. 得到的hello作为一个变量,之前并未定义这个变量,将会导致程序报错
# 故 eval()函数中的字符串只能是纯数字型的。如eval('12.3')的结果就是得到数字:12.3。
eval('hello')
# 4. 用户想要同时输入数值(小数或负数),并将数值用于计算,则 需要使用eval()函数与input()函数结合。
>>> a,b=eval(input('请用逗号隔开两个数值'))
请用逗号隔开两个数值1,2
>>> print(a,b,a+b)
1 2 3
3. print()函数
用于将信息输出到控制台,即在控制台窗口打印信息。如下介绍几种用法
# 1. 直接输出
>>> print('hello world')
hello world
# 2. 变量输出
>>> a='life is too short to learn Python'
>>> print(a)
life is too short to learn Python
# 3. 格式化输出:%.1f度:代表精确到小数点1位
>>> temp=23.6
>>> print('当前温度%.1f度'%temp)
当前温度23.6度
# 4. 格式化输出,通过format函数进行输出
>>> print('当前温度{:.1f}度'.format(temp))
当前温度23.6度
# 5. 不换行输出
>>> b='Hello Python'
>>> print(a,end=' ')
life is too short to learn Python >>> print(b)
Hello Python
四. 字符串
1. 字符串表示
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号、双引号、或一对三引号
a. 在字符串中灵活包含引号和单引号
# 这种灵活性让你能够在字符串中包含引号和撇号:
string_1= 'I told my friend, "Python is my favorite language!"'
string_2= "The language 'Python' is named after Monty Python, not the snake."
print(string_1)
print(string_2)
# I told my friend, "Python is my favorite language!"
# The language 'Python' is named after Monty Python, not the snake.
# 或使用转义字符反斜杠(\)对字符串中的单引号(或双引号) 进行转义处理。
>>> string_1= 'I told my friend, \'Python is my favorite language!\''
>>> print(string_1)
I told my friend, 'Python is my favorite language!'
b. 常见字符串的操作符
2. 字符串索引
>>> s='python'
# 1. 取第一个
>>> s[0]
'p'
# 2. 取第一个到第2个,右不包含
>>> s[0:2]
'py'
# 3. 省略第一个索引
>>> s[:2]
'py'
# 4. 倒数第四个到导数第二个,右不包含
>>> s[-4:-1]
'tho'
>>> s[-1:-1]
''
# 5. 输出整个
>>> s[:]
'python'
# 6. 逆序输出
>>> s[::-1]
'nohtyp'
3. 字符串的处理函数
4. 字符串处理方法
1. 处理方法一
- 小写、大写、
- 是否全部小写、是否可打印、是否都是数字、是否都是空格、
- 是否以什么结尾、开头
>>> str='abcd'
>>> str.endswith('cd')
True
2. 处理方法二
- 由符号分割并返回数组、 子串出现次数、替换
- 居中、去除字符两边指定字符、填充、中间拼接
>>> str='a,b,c'
>>> str.split(',')
['a', 'b', 'c']
>>> str='adbbc'
>>> str.count('a')
1
>>> str.replace('a','z')
'zdbbc'
# 使得str居中,并被#填充到10个字符
>>> new_s=str.center(10,'#')
>>> print(new_s)
##adbbc###
>>> str.strip('a')
'dbbc'
>>> new_s=str.zfill(1)
>>> print(new_s)
adbbc
>>> new_s=str.zfill(10)
>>> print(new_s)
00000adbbc
>>> str.format()
'adbbc'
>>> print(str.join('##'))
#adbbc#
>>> print(str.join('###'))
#adbbc#adbbc#
每个单词首字母大写
name="ada lovelace"
print(name.title())
# Ada Lovelace
去除空格
favorite_language=' python '
print(favorite_language)
print(favorite_language.rstrip()) # 去掉右空格
print(favorite_language.lstrip()) # 去掉左空格
print(favorite_language.strip()) # 去掉两边的空格(不包括中间的)
5. 格式化方法
5.1. 格式化操作符 %
name = "Alice"
age = 30
# 例如 %s 表示格式化为字符串,%d 表示格式化为整数
formatted_string = "Name: %s, Age: %d" % (name, age)
print(formatted_string)
5.2. (py3.5).format()、(py3.6)f
name = "Alice"
age = 30
formatted_string = "Name: {}, Age: {}".format(name, age)
print(formatted_string)
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
使用f字符串可完成很多任务,如利用与变量关联的信息来创建完整的消息。
6. \t 、\n添加空白
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可以使用空白来组织输出,让用户阅读起来更容易。
print("\t ttttt")
print("ttttt")
# ttttt
# ttttt
print("Languages:\nPython\nC\nJavaScript")
Languages:
Python
C
JavaScript
四. 例题
1. 凯撒密码
凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用 替换方法对每一个英文字符循环替换为字母表序中该字符后面第3个字符,对应关系如下:
原文:a b c d e f g h i j k l m n o p q r s t u v w x y z
密文:d e f g h i j k l m n o p q r s t u v w x y z a b c
假设原文字符为P,对应密文为S,则两者的关系为S=(P+3)%26
P=(S-3)%26
加密的程序设计过程:
- 输入一串原文字符串(假设信息全是小写字母a~z)。
- 将字符串中的每一个字符进行转换,规则为S=(P+3)%26。由于字符没有办法直接与数字进行加法运算,所以需要先将字符转换为相应的Unicode编码,再进行加法运算,算完之后得到的Unicode编码又需要转为相应的字符。模26是因为字母表总共有26个字母,起始字母为’a’,所以将当前字母与字母’a’的差取模运算,结果再加上’a’的编码值即可得到 加密后的字母编码值。
- 将加密码后得到的新字符串进行输出。
《python编程:从入门到实战(第二版)》