此系列代码完全基于python3和pycharm2021.2。
例:下列标识符合法:
abcd
abc_d
Abc_3d
IF //python区分大小写,所以if是保留字,但IF不是,可以用
下列标识符不合法:
3abc //数字不能开头
if //标识符不能与保留字相同
@abc //标识符不能有空格、@、% 以及 $ 等特殊字符
python的保留字可以通过print(keyword.kwlist)来打印。
例如:
a=10.01
print(True+a) //输出会是11.01
str='xxxx'
str1="xxxx"
如果特殊字符,需要使用反斜杠来进行转义,
例:str="xxx\nccc"
print(str) //输出是两行,第一行是Ru,第二行是oob
如果不想转义,那么可以在字符串前加一个r,
例:str=r"xxx\nccc"
print(str) //输出是xxx\nccc
语法格式:字符串变量名[头下标:尾下标] 获取的结果含头不含尾。//下标从0开始,依次往后增大,但也可以是负数,意为从后往前走。
例:
a="abcdefg"
print(a[0:3]) //输出是abc
print(a[0:-3]) //输出是abcd
例:
a="abcdefg"
print(a+"123") //输出是abcdefg123
print(a*2) //输出是abcdefgabcdefg
例:
list = [123, “abcd” , 2.23,[456,"efg"] ]
tinylist = [123, 'runoob']
print (list) //输出[123, 'abcd', 2.23, [456, 'efg']]
print (list[0]) //输出123
print (list[3]) //输出[456, 'efg']
print (list[0:3]) //输出[123, 'abcd', 2.23]
print (list * 2) //输出[123, 'abcd', 2.23, [456, 'efg'], 123, 'abcd', 2.23, [456, 'efg']]
print (list + [789,"qwe"]) //输出[123, 'abcd', 2.23, [456, 'efg'], 789, 'qwe']
例:
a=123
list=[789,"abc"]
tuple = (a, 456, list)
list=[147,"asd"]
print(tuple) //输出(123, 456, [789, 'abc'])
print(list) //输出[147, 'asd'],list的元素值发生了变化
例:
set1={"java","c++","c","c","python"}
print(set1) //我这里输出的结果为{'java', 'c++', 'python', 'c'},可以看到两个c只输出了一个;同时由于集合的无序性,这个输出结果的元素之间的顺序也是会变化的
set2={"java1","c++","c","c","python"}
print(set1-set2) //计算差集,输出{'java'}
print(set1|set2) //计算并集,输出{'c', 'c++', 'java1', 'python', 'java'}
print(set1&set2) //计算交集,输出{'c++', 'python', 'c'}
//再次强调,集合是无序的,所以不用纠结于不同次输出结果的外表上的不同。
例:
dict={"1":"我是key为1的值","xxxx":"我是key为xxxx的值"}
print(dict) //输出{'1': '我是key为1的值', 'xxxx': '我是key为xxxx的值'}
print(dict.get("1"))//输出我是key为1的值
print(dict.keys())//这个函数会输出字典中所有的key,本例中输出dict_keys(['1', 'xxxx'])
print(dict.values())//这个函数会输出字典中所有的value,本例中输出dict_values(['我是key为1的值', '我是key为xxxx的值'])
任何编程语言都绕不开三大流程控制语句,同时,任何一个功能都是由三大流程控制语句的组合来实现。
顺序流程控制就是自顶向下,一直走下去,而不考虑任何可能的折返、驻留等操作,一鼓作气完成所有语句,并且每条语句只执行一次。
例:
dict={"1":"我是key为1的值","xxxx":"我是key为xxxx的值"}
print(dict)
print(dict.get("1"))
print(dict.keys())
print(dict.values())
以上文代码为例,整个程序从字典的定义开始,到输出字典的所有value为止,每一条语句都在上一条语句执行完毕后才开始执行,并且执行成功后便不会再有被执行的可能。
格式:
if 条件判断式 : //条件判断式的结果是一个布尔值,即True或False,也只能是这两个值,当然布尔值的本质是1和0,所以条件判断式是1或0也可以
具体操作
elif 条件表达式 : // 这个条件表达式是在不满足上面条件的前提下的条件表达式
具体操作
else : // 这个是在上述所有条件都不满足后所做的操作。
具体操作
例:
a=int(input("请输入一个数:")) //注意这里input得到的是一个字符串类型,需要我们去转换为整型。
if a>50 :
print("xx")
elif a>30 :
print("aaa")
else :
print("dddd")
当有多个if同时满足时,则将全部执行
例:
a=50
if a>30 :
print("xx")
if a>20 :
print("aaa") //程序会输出xx后换行输出aaa
//一般情况下,我们不经常用elif,只使用if-else就能满足大多数要求。
格式 :
条件为True时返回的值 if 条件判断式 else 条件为False时返回的值
循环操作十分常用,比如我们需要输出0-1000内的所有整数,或者是输出某一集合内的所有元素,这个时候就需要用到循环,它的核心就是重复相同操作。同时,python中循环也分为while循环和for循环两种。
格式:
while 条件判断式 : //条件判断式的结果是一个布尔值,即True或False,也只能是这两个值,当然布尔值的本质是1和0,所以条件判断式是1或0也可以
具体操作
例:
while 2-1 :
print("233") //2-1=1,实质上是True,所以这个程序会一直输出233(当然这就是一个死循环了,是我们应该避免发生的情况。),同理,如果把2-1改成2-2,那么2-2=0,则这个程序就不会有任何输出
格式:
for 条件判断式 : //这里的条件判断式主要是用来遍历
具体操作
例:
for num in range(0,101,2): //range(start,end,step)的作用是返回一个列表,列表中含有从start开始依次递增step直到end(不包含end)的所有值
print(num) //这个程序会输出0到100之间的所有偶数
例:
for num in range(0,101,2):
if num==2 :
print(num)
break //程序的意思是从这一大堆数中,我们只需要2,所以遍历到了2之后就直接输出然后结束循环。
例:
for num in range(0,101,2):
if num==2 :
continue
print(num)
//程序的意思是在0到100的整数中,我们不需要2这个数字,所以遍历到2就略过不输出,其他正常输出。
例:
for num in range(0,101,2):
if num==2 :
continue
print(num)
else:
print("我是else")
无论学习任何一门语言,首先都要学习它的数据类型以及基础语法,python虽然说相对易学,但各种细节以及灵活运用都需要经常实践才能掌握。特别是对于学过java和c的人来说,某些python的语法特性反而会比较难以理解,就像一个从小被严加看管的的孩子突然飞出牢笼一样,自由的同时也会十分迷茫。