Python:入门到放弃之基础篇(一)

本文详细介绍了Python的基础知识,包括标识符规则、变量类型如Number、String、List、Tuple、Set和Dictionary及其操作。此外,还讲解了Python的流程控制,如顺序控制、分支控制(if-elif-else)和循环控制(while、for)。通过对这些基础知识的掌握,读者可以更好地理解和应用Python编程。
摘要由CSDN通过智能技术生成


前言

此系列代码完全基于python3和pycharm2021.2。

一、python的标识符

  1. 标识符由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  2. 标识符不能和 Python 中的保留字相同。
  3. Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
  4. 在 Python 中,标识符中的字母是严格区分大小写的
  5. 虽然标识符可以有下划线,但以下划线开头的标识符往往含有特殊含义,因此不建议使用下划线开头的标识符,除非你确实要这么做。
例:下列标识符合法:
	abcd
	abc_d
	Abc_3d
	IF          //python区分大小写,所以if是保留字,但IF不是,可以用
	下列标识符不合法:
	3abc		//数字不能开头
	if			//标识符不能与保留字相同
	@abc		//标识符不能有空格、@、% 以及 $ 等特殊字符

python的保留字可以通过print(keyword.kwlist)来打印。

二、python变量类型

  1. python是弱类型的语言,但不代表它没有类型,只不过它会动态绑定类型而无需我们关注。变量的类型可以通过 type()函数来打印
  2. Python 中标准的数据类型:
    Number(数字)
    String(字符串)
    List(列表)
    Tuple(元组)
    Set(集合)
    Dictionary(字典)
  3. 得益于python异常丰富的标准库,python的数据类型有许多的函数用法,有兴趣的同学可以去查阅资料。

1.Number

  1. Python的数字类型支持 int(整型)、float(浮点)、bool(布尔)、complex(复数)。
  2. python中bool的两种类型True和False其实分别是1和0,所以布尔值实际上可以与其他数值相加。
例如:
	a=10.01
    print(True+a)		//输出会是11.01

2.String

  1. 字符串的赋值:
str='xxxx'
str1="xxxx"
如果特殊字符,需要使用反斜杠来进行转义,
   			例:str="xxx\nccc"
   				print(str)			//输出是两行,第一行是Ru,第二行是oob
   	如果不想转义,那么可以在字符串前加一个r,
   			例:str=r"xxx\nccc"
   			print(str)			//输出是xxx\nccc	
  1. 字符串可以进行切片操作,来方便的截取其中的部分字符
语法格式:字符串变量名[头下标:尾下标] 	获取的结果含头不含尾。//下标从0开始,依次往后增大,但也可以是负数,意为从后往前走。
例:
	a="abcdefg"
    print(a[0:3])	//输出是abc
    print(a[0:-3])	//输出是abcd
  1. 字符串之间也可以使用加号进行拼接,使用乘号来多次输出
例:
	a="abcdefg"
     print(a+"123")	//输出是abcdefg123
     print(a*2)	//输出是abcdefgabcdefg
  1. python的字符串是不可变的,所以不能对某一下标赋值

3.List

  1. 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。其中的元素类型可以互不相同,也可以进行嵌套。
  2. 列表也可以和字符串一样进行拼接和截取,截取后返回一个新的列表。同样含头不含尾。
  3. 列表中的元素是可以改变的。
例:
   	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']

4.Tuple

  1. 元组和列表类似,也可以切片、拼接、重复输出。元组元素写在小括号 () 里,元素类型可以不相同,但元素不能修改。
  2. 元素不能修改的意思是元素的引用不能修改,也就是不能通过元组下标来修改元素,但元素本身的值可以变化
例:
	a=123
    list=[789,"abc"]
    tuple = (a, 456, list)
    list=[147,"asd"]
    print(tuple)		//输出(123, 456, [789, 'abc'])
    print(list)			//输出[147, 'asd'],list的元素值发生了变化   

5.Set

  1. 集合,和数学上的集合概念相似,不保证内部元素的有序性、没有重复元素、可以进行并集、差集、交集的运算。
  2. 使用大括号 { } 或者 set() 函数可以创建集合,但如果要创建一个空集合则不能使用 { },因为 { } 是用来创建一个空字典。
  3. 正因为集合的无序性,所以不能够知道一个元素在集合中的具体位置,所以也就不能对集合采取切片操作。
例:
	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'}
    //再次强调,集合是无序的,所以不用纠结于不同次输出结果的外表上的不同。

6.Dictionary

  1. 字典,顾名思义,就像一本新华字典一样,如果我们需要查到一个汉字,那么就需要通过拼音、偏旁等方法来得到一个页码,才能查到这个汉字。在python的字典中,这个“拼音”、“偏旁”被称为key(键),这个页码被称为value(值),字典正式通过这个key - value的方式来一一对应的存储元素。
  2. 正因为字典的一一对应的特性,所以key必须是唯一的。
  3. 字典用 { } 标识,它是一个无序的 key - value的集合。
例:  
	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的值'])

三、python流程控制

任何编程语言都绕不开三大流程控制语句,同时,任何一个功能都是由三大流程控制语句的组合来实现。

1.顺序流程控制

顺序流程控制就是自顶向下,一直走下去,而不考虑任何可能的折返、驻留等操作,一鼓作气完成所有语句,并且每条语句只执行一次。

例:
   	dict={"1":"我是key为1的值","xxxx":"我是key为xxxx的值"}
	print(dict)
	print(dict.get("1"))
 	print(dict.keys())    
 	print(dict.values())
以上文代码为例,整个程序从字典的定义开始,到输出字典的所有value为止,每一条语句都在上一条语句执行完毕后才开始执行,并且执行成功后便不会再有被执行的可能。

2.分支流程控制

  1. 分支流程控制就是在程序有多种不同的执行方法时,使用条件来控制具体的执行语句。比如我们去买瓜。如果它保熟,那么我们就买,如果不保熟就化身华强(雾)…
格式:
		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就能满足大多数要求。
  1. 三元表达式
    三元表达式在很多语言中都有,而且格式基本一样,而python这个三元表达式的格式,就比较特立独行
格式 :
	条件为True时返回的值  if  条件判断式  else  条件为False时返回的值

3.循环流程控制

循环操作十分常用,比如我们需要输出0-1000内的所有整数,或者是输出某一集合内的所有元素,这个时候就需要用到循环,它的核心就是重复相同操作。同时,python中循环也分为while循环和for循环两种。

  1. while循环
    当条件判断式为True时才执行具体操作
格式:
	while 条件判断式  :			//条件判断式的结果是一个布尔值,即True或False,也只能是这两个值,当然布尔值的本质是1和0,所以条件判断式是1或0也可以
		  具体操作
例: 
	while 2-1 :
    print("233")		//2-1=1,实质上是True,所以这个程序会一直输出233(当然这就是一个死循环了,是我们应该避免发生的情况。),同理,如果把2-1改成2-2,那么2-2=0,则这个程序就不会有任何输出
  1. for循环
格式:
	for  条件判断式 :	//这里的条件判断式主要是用来遍历
		 具体操作
例:
	for num  in range(0,101,2): //range(start,end,step)的作用是返回一个列表,列表中含有从start开始依次递增step直到end(不包含end)的所有值
      	print(num)	//这个程序会输出0到100之间的所有偶数
  1. 循环中断语句
    一般情况下我们写循环都是为了在大量重复操作中得到一个特殊的操作(比如寻找一些特定的值),而得到后就没必要继续。那么就需要break语句来结束循环;或者我们在一大堆操作中不需要某些操作,那么我们也可以使用continue略过它。
例:
	  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就略过不输出,其他正常输出。
  1. else语句
    循环操作也可以有else语句,它会在循环正常执行完毕之后再执行,for和while都可以用,但是不建议,因为一般情况下它作用不大,反而在代码比较复杂时会增大代码的阅读难度。
例:
	  for num  in range(0,101,2):
      	  if num==2 :
       		 continue
      	  print(num)
  	  else:
          print("我是else")

总结

无论学习任何一门语言,首先都要学习它的数据类型以及基础语法,python虽然说相对易学,但各种细节以及灵活运用都需要经常实践才能掌握。特别是对于学过java和c的人来说,某些python的语法特性反而会比较难以理解,就像一个从小被严加看管的的孩子突然飞出牢笼一样,自由的同时也会十分迷茫。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Magic171

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值